Автор Evgenij Chernjavskij задал вопрос в разделе Java
Java. Работа с вещественными числами. и получил лучший ответ
Ответ от Максим[гуру]
3.9 там точно не будет лежать, однако может быть число, близкое к 4.0 (хотя вряд ли в данном случае, так как представленные числа конечны). Это происходит из-за того, что числа сохраняются в двоичном представлении, которые не всегда конечны после преобразования из десятичных (теряется точность). Для подсчёта денег и т. д. используется более медленный decimal (в java вроде BigDecimal).
Ответ от Иван Сигаев[гуру]
Воспользуйся Long и фиксированной запятойвместо 5.5 - записывай 5500 (умножаем на 1000)при вводе коррекция *1000при сложении/вычитании никаких дополнений не требуетсяпри умножении/делении нужно проводить коррекцию /1000 либо *1000перед выводом коррекция /1000сравнение обычные целые числатакой вариант устроит?
Воспользуйся Long и фиксированной запятойвместо 5.5 - записывай 5500 (умножаем на 1000)при вводе коррекция *1000при сложении/вычитании никаких дополнений не требуетсяпри умножении/делении нужно проводить коррекцию /1000 либо *1000перед выводом коррекция /1000сравнение обычные целые числатакой вариант устроит?
Ответ от Данил Зельман[новичек]
3.9 там точно не будет лежать, однако может быть число, близкое к 4.0 (хотя вряд ли в данном случае, так как представленные числа конечны). Это происходит из-за того, что числа сохраняются в двоичном представлении, которые не всегда конечны после преобразования из десятичных (теряется точность). Для подсчёта денег и т. д. используется более медленный decimal (в java вроде BigDecimal).
3.9 там точно не будет лежать, однако может быть число, близкое к 4.0 (хотя вряд ли в данном случае, так как представленные числа конечны). Это происходит из-за того, что числа сохраняются в двоичном представлении, которые не всегда конечны после преобразования из десятичных (теряется точность). Для подсчёта денег и т. д. используется более медленный decimal (в java вроде BigDecimal).
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Java. Работа с вещественными числами.
Почему остаток от деления работает только с целочисленными типами данных в C/C++, Java,ведь математически это допустимо?
Для работы с вещественными функциями есть специальная
подробнее...
спросили в Jeep
Как нужно сравнивать вещественные числа на равенство в Java?
Почему не удастся? Очень даже удастся. Если числа одинаковые то equals для Double/Float и "==" для
подробнее...
Как нужно сравнивать вещественные числа на равенство в Java?
Почему не удастся? Очень даже удастся. Если числа одинаковые то equals для Double/Float и "==" для
подробнее...
Java. Пара простых вопросов от начинающего. Что означает 1) static private double? 2) printSinusTable
1) static - означает, что метод(поле) существует на уровне класса, а не отдельных экземпляров.
подробнее...