rusqhyazeubebgcahrcsdanlenetfifrglkadeelhuisgaitkkkylvltmknoplptrosrskslessvtrukuz

округлить десятичное значение до 2 десятичных знаков

Больше
6 мес. 3 нед. назад #254 от О.Коровяков
При отображении значения десятичной дроби в настоящее время с .ToString(), оно точно похоже на 15 знаков после запятой, и поскольку я использую его для представления долларов и центов, я хочу, чтобы результат был равен 2 десятичным знакам.

Можно ли для этого вариант .ToString()?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 мес. 3 нед. назад #255 от О.Коровяков
decimalVar.ToString ("#.##"); // returns "" when decimalVar == 0

или
decimalVar.ToString ("0.##"); // returns "0"  when decimalVar == 0

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 мес. 3 нед. назад #256 от О.Коровяков
Я знаю, что это старый вопрос, но я был удивлен, увидев, что никто, казалось, не ответил на этот вопрос:

Не использовать округление банкиров
Не сохранять значение как десятичное.

Это то, что я бы использовал:
decimal.Round(yourValue, 2, MidpointRounding.AwayFromZero);

msdn.microsoft.com/en-us/library/9s0xa85y.aspx
decimalVar.ToString("F");
Это будет:
Завершить до 2 знаков после запятой, например. 23.456 = > 23.46
Убедитесь, что всегда есть 2 десятичных разряда, например. 23 = > 23,00, 12,5 = > 12,50

Идеально подходит для валюты и отображения денежных сумм.

Если вам просто нужно это для отображения, используйте string.Format
String.Format("{0:0.00}", 123.4567m);      // "123.46"
www.csharp-examples.net/string-format-double/
"m" - десятичный суффикс. О десятичном суффиксе:
msdn.microsoft.com/en-us/library/364x0z75.aspx

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
6 мес. 3 нед. назад #257 от О.Коровяков
Ни один из них не сделал именно то, что мне нужно, чтобы заставить 2 d.p. и округлить как 0.005 -> 0.01

Принуждение 2 ч. требует увеличения точности на 2 д.п. для обеспечения того, чтобы у нас было не менее 2 d.p.

затем округляем, чтобы гарантировать, что у нас не более 2 d.p.
Math.Round(exactResult * 1.00m, 2, MidpointRounding.AwayFromZero)
6.665m.ToString() -> "6.67"
6.6m.ToString() -> "6.60"

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подпишитесь на наши новости...

Если вам интересны материалы опубликованных на Нашем сайте, Вы можете подписаться на рассылку информационных бюллетеней о новых публикациях ... Просто введите адрес электронной почты на какую Вы хотите получать Новости и нажмите кнопку "Подписаться"

Контакт Инфо

Ok-Wood.
08304 ул.Салютная,c.Гнедын,
Киевская обл, Украина
  • Тел: +39 067 492 41 24
    Tel: +38 095 095 88 60
  • Email: info@ok-wood.com.ua
  • Web: ok-wood.com.ua

Весь процесс строительства описан на страницах сайта, но более подробно о технологии, методах строительства, и всех деталях - Вы можете узнать в книге.