Как я могу получить не больше и не меньше двух знаков после запятой в десятичном значении?

С этим кодом:

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 - количество цифр после десятичной точки.

Надеюсь это поможет:)

Вместо этого вы можете использовать формат #.00.

Поскольку это Excel, я должен был сказать диапазону / ячейке, как именно себя вести, вот так:

totalPriceCell.NumberFormat = "#,##0.00";
Другие вопросы по тегам