У меня странная проблема. Я пытаюсь сохранить результат уравнения в двойную переменную.Weird Java математическое исполнение
double s = (((100 + 1)*(1/3))/100 + (1/3));
Это возвращает значение a 0, а не 0,67 (правильное значение, рассчитанное калькулятором). Любая причина, почему это может произойти?
Примечание: Решение о том, что я мог бы просто сделать s = 0,67 не является решением,
Спасибо заранее.
Если вы добавляете 'd' в конце концов ваши номера, например '100d', вы будете использовать операции с плавающей запятой, а не целые операционные системы. – jedwards
Как уже было сказано, я просто добавляю примечание, что если вам нужно точное значение '0.67', в отличие от' 0.669999999999', вы должны использовать 'BigDecimal'. http://stackoverflow.com/questions/322749/retain-precision-with-doubles-in-java – gaganbm