У меня проблема округления внутри .Net.
Я округляю трехзначное число до двух цифр, и это вызывает некоторые проблемы с одним числом.
Если я пытаюсьокруглить 34,425 до двух знаков после запятой, следует округлить до 34,43.Я использую опцию roundawayfromzero, и она сработала для каждого числа в программе, кроме этого.
Код Math.Round(34.425, 2, MidpointRounding.AwayFromZero)
должен равняться 34,43, однако он равен 34,42.
ЕслиЯ пробую это с любым другим номером, он работает нормально.
Math.Round(34.435, 2, MidpointRounding.AwayFromZero) = 34.44
Math.Round(34.225, 2, MidpointRounding.AwayFromZero) = 34.23
Math.Round(34.465, 2, MidpointRounding.AwayFromZero) = 34.47
Я просто хотел проверить, сталкивался ли кто-нибудь с этой проблемой раньше?
На данный момент я исправил эту проблемупутем преобразования числа в десятичное число.Я изменил код на этот, и теперь он работает нормально:
Math.Round(CDec(34.425), 2, MidpointRounding.AwayFromZero) = 34.43
Я просто ищу причину, по которой мой старый код не работает.
Спасибо!
Обновлен код до правильного AwayFromZero