Ответ 1
Math.Round(yourNumber, 1)
Второй параметр - это число десятичных знаков для округления до. В вашем случае вы хотите, чтобы в качестве конечного результата было 1 десятичное место.
Я пытаюсь понять, как округлить до ближайшей десятой позиции с С#. Например, у меня есть значение типа double. В настоящее время этот двойник установлен на 10,75. Тем не менее, мне нужно округлить, а затем усечь все, что находится за десятую позицию. В этом случае я ищу значение 10.8. Как мне округлить до позиции десятых в С#?
Спасибо!
Math.Round(yourNumber, 1)
Второй параметр - это число десятичных знаков для округления до. В вашем случае вы хотите, чтобы в качестве конечного результата было 1 десятичное место.
Вам просто нужно использовать перегрузку 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
Поскольку вы использовали Math.Round()
в своем названии, я собираюсь предположить, что вы уже пробовали базовый подход Math.Round(10.75,1)
, и он возвращает то, чего вы не ожидаете. Имея это в виду, я предлагаю рассмотреть некоторые из разных перегрузок для функции, в частности, тот, который принимает MidPointRounding
enum:
Вам действительно нужно округлить его, или вы можете просто отформатировать его для печати, но позволить самой переменной держать свою точность? Что-то вроде:
decimal value = 10.75;
value.ToString ("#.#");
Если вы просто хотите "вырезать" все после первого десятичного знака, эта работа shoudl:
return Math.Round(value * 10)/10