BasicProgrammer__ Ответов: 3

Как конвертировать float в деньги


Итак, я использую SQL Datareader, и код приведен ниже..
ltUP.Text = dr["UnitPrice"].ToString();

Теперь я хотел, чтобы "UnitPrice" был показан в этом формате:
{0:#,###.00};

потому что в моей базе данных он находится в float... Я хотел, чтобы он был в деньгах, когда я показываю его в своем файле aspx..

Что я уже пробовал:

Я уже пробовал это:
ltUP.Text = dr["UnitPrice"].ToString("{0:#,###.00}");

ltUP.Text = dr["UnitPrice","{0:#,###.00}"].ToString();

Но я знаю, что это неправильно... любая помощь была бы очень кстати..

CHill60

Откуда вы "знаете", что это неправильно?

BasicProgrammer__

Потому что сообщение об ошибке, которое я получаю для обоих, - это "ошибка компиляции".....

Kornfeld Eliyahu Peter

Почему бы не преобразовать его в деньги в первую очередь и после этого форматирования?
Какой элемент управления вы используете для отображения данных?

Michael_Davies

Не используйте float для хранения "денег", вы не получите правильных ответов...

3 Ответов

Рейтинг:
23

OriginalGriff

Попробуй:

tUP.Text = ((double)dr["UnitPrice"]).ToString("{0:#,###.00}");


BasicProgrammer__

К сожалению, он вернулся с "ценой за единицу 14,00:0,000,00"

BasicProgrammer__

Я пытался исправить ваш код... измените его на:

ltUP.Text = ((double)dr["UnitPrice"]).ToString("#,###.00");

и это сработало! Спасибо

OriginalGriff

Дох! Да, я запутался - вот в чем дело.Форматирование строки форматирования! :румянец:

Kornfeld Eliyahu Peter

В следующий раз (вместо того, чтобы пытаться и терпеть неудачу):
https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings

Рейтинг:
0

CPallini

Я полагаю, что вы должны получить фактическое значение, используя GetDouble[^] метод (да, SQL FLOAT соответствует a C# double) метод, а затем отформатируйте его в соответствии с вашими потребностями.


Рейтинг:
0

GrpSMK

попробуйте вот так ниже

ltUP.Text = ((double)dr["UnitPrice"]).ToString("#,###.00");