Как я могу получить не больше и не меньше двух знаков после запятой в десятичном значении?
С этим кодом:
totalPriceCell.Value2 = TotalPrice;
... Я получал значения, такие как "3.14963245", которые я хочу вместо "3.15".
Поэтому я использовал этот код:
totalPriceCell.Value2 = TotalPrice.ToString("#.##");
... и это решило эту проблему, но я все еще получаю значения, такие как "7,6" и "35" (которые я хочу, чтобы быть "7,60" и "35,00")
Что можно сделать для этого, кроме добавления вручную значения "0" для значений, таких как "7,6", и добавления значения ".00" вручную для значений, таких как "35"?
ОБНОВИТЬ
Niether предложение не сработало, ни это:
totalPriceCell.Value2 = TotalPrice.ToString("F2");
... ни это
totalPriceCell.Value2 = Math.Round(TotalPrice, 2).ToString("F2");
Я все еще получаю "7,6" и т.д.:
ОБНОВЛЕНИЕ 2
Это оказывается проблемой Excel, потому что, когда я добавил это:
MessageBox.Show(Math.Round(TotalPrice, 2).ToString("F2"));
... Я видел такие значения, как "7,60" (не "7,6").
3 ответа
Похоже, вы пытаетесь округлить числа до 2 десятичных знаков, а затем вывести ответ с конечным 0.
Просто используйте Math.Round()
округлить, а затем отобразить с помощью .ToString("F2")
формат:
totalPriceCell.Value2 = Math.Round(TotalPrice, 2).ToString("F2");
Math.Round(arg1, arg2)
: Где 1-й аргумент (arg1) - это значение, которое вы хотите округлить, а 2-й аргумент (arg2) - это десятичные разряды, до которых вы хотите округлить.
.ToString("F2")
: Использование "F2"
- F является указанным форматом с фиксированной точкой; 2 - количество цифр после десятичной точки.
Надеюсь это поможет:)
Поскольку это Excel, я должен был сказать диапазону / ячейке, как именно себя вести, вот так:
totalPriceCell.NumberFormat = "#,##0.00";