Округление двойной переменной - PullRequest
0 голосов
/ 05 декабря 2018

У меня следующая проблема.Когда я пытаюсь округлить число из «двойного» типа, оно не работает так, как я ожидаю.

Рассмотрим следующий код:

double d = 0.00498;
Console.WriteLine(Math.Round(d, 2)); // prints 0

Результат, который я получаюнеправильно.

Программа должна напечатать 0,01, и я попробовал все, и ничего не работало должным образом.

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

Вы ожидаете, что число округляется до 2 десятичных знаков.

Math.Ceiling(d * 100) / 100
0 голосов
/ 05 декабря 2018

Результат приходит правильно.Вы можете попробовать в приложении Excel.

enter image description here

С уважением, Nandkumar S.

0 голосов
/ 05 декабря 2018

Я думаю, вам нужна вторая итерация для желаемого результата

double d = 0.00498;
double result1 = Math.Round(d, 3, MidpointRounding.AwayFromZero);
double result2 = Math.Round(result1 , 2, MidpointRounding.AwayFromZero);
Console.WriteLine(result2);

, потому что 0.00498 приводит к 0.005 вместо 0.01

...