Может кто-нибудь помочь мне понять, где я ошибаюсь. Почему это происходит:C# Явно конвертируемая двойная и длинная потеряющая точность
long a = (long)((720000 + 144000) * 0.285);
Фактическое значение: 246.239
Ожидаемое значение а: 246.240
Изменение типа «а» удвоить и удаление результатов преобразования в правильное значение , но я пишу программу, которая может привести к очень большим числам - неправильно ли я использовать длинный тип?
Любые советы приветствуются!
Обязательно: "Что каждый программист должен знать о плавающей точкой" http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – James
Попробуйте 'BigInteger а = новый BigInteger (((720000 + 144000) * 285))/1000; ' –
@James Спасибо за эту статью, дадут ей прочитать. – xShinies