Отображение валюты на vb.net имеет четыре нуля вместо двух - PullRequest
4 голосов
/ 27 февраля 2010

когда я получаю поле money с сервера sql в код vb.net, я всегда получаю 1,0000 вместо 1,00. как я могу преобразовать это в 1,00 в vb.net?

TD = New HtmlTableCell

If Not SqlDR("Price") Is DBNull.Value Then
    TD.InnerHtml = SqlDR("Price")
Else
    TD.InnerHtml = "0.00"
End If

SQLDR - мой читатель данных sql

Ответы [ 3 ]

2 голосов
/ 27 февраля 2010

Это связано с тем, что SQL Server хранит поле MONEY с 4 десятичными разрядами. Чтобы увидеть это с помощью 2, используйте метод String.Format .

String.Format("{0:c}", 10) ''result: $10.00

String.Format("{0:N2}", 10) ''result: 10.00

Смотрите эти страницы для получения дополнительной информации о способах форматирования ваших чисел

1 голос
/ 27 февраля 2010

Вы уверены, что не путаете отображение значения со значением фактическое ?

1,0000 и 1,00 - это одно и то же значение.

Если вы хотите отобразить только определенное количество мест при преобразовании значения в строку, вам следует обратиться к разделу Пользовательские строки числового формата в документации MSDN , чтобы выяснить, какую строку формата передать к методу ToString в структурах Decimal, Double, Single или статическом методе Format в классе String.

1 голос
/ 27 февраля 2010

Вам необходимо отформатировать данные при их выводе:

myMoney.ToString("0.00");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...