C# - Математика. Вокруг

Firebird встроил, наш выбор № 1, потому что без изменений кода, отдельный пользователь приложение Дельфи со встроенной базой данных может быть перемещено в многопользовательское основанное на сервере развертывание, не жертвуя ни одной из функций высокого класса (таких как хранимые процедуры, триггеры, представления, и т.д.). И это - TRUE свободная база данных и не делает GPL Ваш код в процессе.

15
задан chollida 5 October 2009 в 16:47
поделиться

5 ответов

Math.Round(yourNumber, 1)

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

32
ответ дан 1 December 2019 в 00:04
поделиться

Вам просто нужно использовать перегрузку для Math.Round , которая принимает параметр decimals .

Math.Round(10.75, 1) // returns 10.8

Для сравнения:

Math.Round(10.75)    // returns 11
Math.Round(10.75, 0) // returns 11
Math.Round(10.75, 2) // returns 10.75
13
ответ дан 1 December 2019 в 00:04
поделиться

Поскольку вы использовали Math.Round () в своем заголовке, я предполагаю, что вы уже пробовали базовый Math.Round (10.75,1) , и он возвращает то, чего вы не ожидаете. Имея это в виду, я предлагаю рассмотреть некоторые из различных перегрузок для функции, в частности ту, которая принимает перечисление MidPointRounding :

http://msdn.microsoft.com/en-us/library /f5898377.aspx

8
ответ дан 1 December 2019 в 00:04
поделиться

Вам действительно нужно округлить его, или вы можете просто отформатировать его для печати, но позволить самой переменной сохранять свою точность? Что-то вроде:

decimal value = 10.75;
value.ToString ("#.#");
4
ответ дан 1 December 2019 в 00:04
поделиться

Если вы просто хотите «вырезать» все, что находится после первого десятичного знака, этот шоудл работает:

   return Math.Round(value * 10)/10
2
ответ дан 1 December 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: