Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА:

округлить десятичное значение до 2 десятичных знаков 4 года 8 мес. назад #254

  • Олег Коровяков
  • Олег Коровяков аватар Автор темы
  • Не в сети
  • Автор сайта
  • Автор сайта
  • Сообщений: 280
  • Репутация: 1
  • Спасибо получено: 1
При отображении значения десятичной дроби в настоящее время с .ToString(), оно точно похоже на 15 знаков после запятой, и поскольку я использую его для представления долларов и центов, я хочу, чтобы результат был равен 2 десятичным знакам.

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

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

округлить десятичное значение до 2 десятичных знаков 4 года 8 мес. назад #255

  • Олег Коровяков
  • Олег Коровяков аватар Автор темы
  • Не в сети
  • Автор сайта
  • Автор сайта
  • Сообщений: 280
  • Репутация: 1
  • Спасибо получено: 1
decimalVar.ToString ("#.##"); // returns "" when decimalVar == 0

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

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

округлить десятичное значение до 2 десятичных знаков 4 года 8 мес. назад #256

  • Олег Коровяков
  • Олег Коровяков аватар Автор темы
  • Не в сети
  • Автор сайта
  • Автор сайта
  • Сообщений: 280
  • Репутация: 1
  • Спасибо получено: 1
Я знаю, что это старый вопрос, но я был удивлен, увидев, что никто, казалось, не ответил на этот вопрос:

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

Это то, что я бы использовал:
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

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

округлить десятичное значение до 2 десятичных знаков 4 года 8 мес. назад #257

  • Олег Коровяков
  • Олег Коровяков аватар Автор темы
  • Не в сети
  • Автор сайта
  • Автор сайта
  • Сообщений: 280
  • Репутация: 1
  • Спасибо получено: 1
Ни один из них не сделал именно то, что мне нужно, чтобы заставить 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"

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

  • Страница:
  • 1
Модераторы: Дмитрий

О сайте

Строительство индивидуальных домов из лёгкого самана - опыт, советы, методика строительства и подробные инструкции. А также возможность применения альтернативных источников энергии.


Контакты

08340. ул.Салютная 17. с.Гнедын.
Киевская обл. Украина.

+38 067 492 4124.
+38 095 065 8860.

info@okwood.com.ua
www.okwood.com.ua

Местоположения


8PM2+7R Гнедин, Kyiv Oblast