У меня есть номер типа double. double a = 12.00 Я должен сделать это как 12, удалив .00
Пожалуйста, помогите мне
У меня есть номер типа double. double a = 12.00 Я должен сделать это как 12, удалив .00
Пожалуйста, помогите мне
Ну 12
и 12.00
имеют точно такое же представление, как и значения double
. Вы пытаетесь в конечном итоге с помощью double
или еще чего-нибудь? (Например, вы можете использовать int
, если вы были уверены, что значение будет в правом диапазоне, и если эффект усечения - это то, что вы хотите.)
Вы также можете посмотреть эти методы:
Math.Floor
Math.Ceiling
Math.Round
(с вариантами обработки средних точек)Math.Truncate
Если вам просто нужна целая часть двойника, используйте явное приведение в int.
int number = (int) a;
Вы можете использовать Convert.ToInt32 Method (Double), но это будет округлять число до ближайшего целого.
округленное до ближайшего 32-разрядного целого числа со знаком. Если значение на полпути между двумя целыми числами, четное число возвращается; что равна 4,5, преобразуется в 4, а 5.5 преобразуется в 6.
Используйте Math.Round
int d = (int) Math.Round(a, 0);
Использовать Decimal.Truncate
Он удаляет дробную часть из десятичной.
int i = (int)Decimal.Truncate(12.66m)
Читая все ваши комментарии, я думаю, вы просто пытаетесь отобразить его в определенном формате, а не меняете значение/приводите его к типу int
.
Я думаю, что самый простой способ отобразить 12.00
как "12"
- использовать спецификаторы формата строки.
double val = 12.00;
string displayed_value = val.ToString("N0"); // Output will be "12"
Лучшая часть этого решения состоит в том, что оно изменит 1200.00
на "1,200"
(добавьте к нему запятую), что очень полезно для отображения суммы/денег/цены чего-либо.
Дополнительную информацию можно найти здесь: https://msdn.microsoft.com/en-us/library/kfsatb94(v=vs.110).aspx
вот трюк
a = double.Parse(a.ToString().Split(',')[0])
Поскольку числа после точки равны нулю, лучшее решение - использовать Math.Round(MyNumber).