Округлить десятичные цифры до верхнего значения - PullRequest
0 голосов
/ 15 сентября 2011

Я хочу округлить цифры десятичного значения до верхнего значения, если цифра не равна нулю.Я хочу округлить 6-ю цифру до верхнего значения.

Sample Value    = 1.0003331
Expected Value  = 1.000334

Ответы [ 2 ]

1 голос
/ 15 сентября 2011

Звучит так, как вы, возможно, захотите:

decimal scale = 1000000m;
decimal rounded = decimal.Ceiling(x * scale) / scale;

(Масштаб может быть выключен на единицу:)

Очевидно, это вызовет проблему, если вы попытаетесь обработать с ним очень большие числа- они могут переполниться.

Я бы хотел думаю, вы также можете сделать то же самое, добавив определенную сумму и затем используя decimal.Round, но это немного неловко без MidpointRounding из RoundTowardsZero.

0 голосов
/ 15 сентября 2011

Вы можете попробовать что-то вроде этого:

decimal.Round(Value + 0.00000049m, 6, MidpointRounding.AwayFromZero)

MidpointRounding.AwayFromZero гарантирует, что когда число находится посередине между двумя другими, оно округляется до ближайшего числа, которое отличается от нуля.

MSDN Decimal.Round

...