Делать Math.Round (x, 2) для десятичного значения, но необходимо обеспечить 2 числа после десятичного числа в качестве денег - PullRequest
3 голосов
/ 04 марта 2010

Некоторые значения возвращают 2.0, но мне нужно, чтобы оно было 2.00, поскольку это денежная стоимость, отображаемая на веб-странице.

Я делаю:

Math.Round(value, 2);

Есть ли способ заставить его ввести 2 числа после десятичной дроби?

Ответы [ 3 ]

5 голосов
/ 04 марта 2010

Вы должны использовать десятичное число для хранения денежных значений.

Но независимо от того, используете ли вы десятичный тип или тип с плавающей запятой, ваш вопрос спрашивает, как число может отображаться с двумя десятичными знаками. Используйте money.ToString("0.00") для отображения двух десятичных знаков.

2 голосов
/ 04 марта 2010

Если вы используете VB.Net, используйте

FormatNumber(number, digitsAfter)

или

FormatCurrency(number, digitsAfter)

или это может быть как в (C #, так и Vb.Net)

doubleNumber = -1898300.1987;
Console.WriteLine(doubleNumber.ToString("F2", CultureInfo.InvariantCulture));  
// Displays -1898300.20

Смотрите эту ссылку для полных форматов ToString (): http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

0 голосов
/ 04 марта 2010

Либо .ToString ("0.00"), как предложено Марком, если вам нужно только отобразить .00 или Math.Round (значение * 100,0) / 100,0; если вам нужно фактическое значение с точностью до цента.

...