Подтвердить что ты не робот

Как удалить десятичную часть из числа в С#

У меня есть номер типа double.  double a = 12.00 Я должен сделать это как 12, удалив .00

Пожалуйста, помогите мне

4b9b3361

Ответ 1

Ну 12 и 12.00 имеют точно такое же представление, как и значения double. Вы пытаетесь в конечном итоге с помощью double или еще чего-нибудь? (Например, вы можете использовать int, если вы были уверены, что значение будет в правом диапазоне, и если эффект усечения - это то, что вы хотите.)

Вы также можете посмотреть эти методы:

Ответ 2

Если вам просто нужна целая часть двойника, используйте явное приведение в int.

int number = (int) a;

Вы можете использовать Convert.ToInt32 Method (Double), но это будет округлять число до ближайшего целого.

округленное до ближайшего 32-разрядного целого числа со знаком. Если значение на полпути между двумя целыми числами, четное число возвращается; что равна 4,5, преобразуется в 4, а 5.5 преобразуется в 6.

Ответ 3

Используйте Math.Round

int d = (int) Math.Round(a, 0);

Ответ 4

Использовать Decimal.Truncate

Он удаляет дробную часть из десятичной.

int i = (int)Decimal.Truncate(12.66m)

Ответ 5

Читая все ваши комментарии, я думаю, вы просто пытаетесь отобразить его в определенном формате, а не меняете значение/приводите его к типу 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

Ответ 6

вот трюк

a =  double.Parse(a.ToString().Split(',')[0])

Ответ 7

Поскольку числа после точки равны нулю, лучшее решение - использовать Math.Round(MyNumber).