C # Округление от 1.998 до 1.9 - PullRequest
0 голосов
/ 25 октября 2018

Я прочитал много примеров округления чисел, но ничего, что решает мою проблему ...

Возможно, я упускаю что-то очевидное, но я пытался:

string.Format("{0:0.0}", 1.998) = "2.0"
(1.998).ToString("0.0") = "2.0"
(1.998).ToString("0.#") = "2"
Math.Round(1.998, 1) = 2

Мне нужно: 1.9

Примечание: значение 1.998 может быть 1.998xxx

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

1 Ответ

0 голосов
/ 25 октября 2018

Вы хотите урезать из того, что я понимаю.Попробуйте это:

(Math.Truncate(1.998m * 10))/10

Форсировка decimal вместо double предотвращает проблемы с вычислениями с плавающей запятой.Кроме того, проверьте этот пост , в котором объясняются различия округления между Truncate, Round, Floor и Ceiling, чтобы выяснить, какой из них подходит вам лучше всего.

...