Java: как получить правильный результат? [Дубликат]

1

В java:

double b = 1234 / (1234+1500);

результат:

0.0

Зачем?

Как получить правильный результат?

Теги:
math
double

3 ответа

0
Лучший ответ

просто сделайте один из операндов double/float -

double b = (double) 1234.0/(1235+1500);

Здесь кастинг не требуется.

Правила benind: если один из операндов double/float (здесь 1234.0), то другой повышается до double/float.

1
double b = 1234D / (1234D + 1500D)
  • 0
    но я использую локальную переменную, чтобы дать входное значение ... как его реализовать
  • 0
    Я только ответил на ваш оригинальный вопрос. Если честно, я бы не использовал двойные числа для арифметики. Используйте BigDecimals и анализируйте ваши входы к ним
Показать ещё 1 комментарий
0

Вы получаете 0.0 потому что java будет целочисленным. Чтобы получить правильный результат, вы должны выполнить, по крайней мере, оператор, чтобы double.

double b = ((double)1234) / (1234+1500)
  • 0
    благодарю вас. это работает
  • 0
    @VigneshRajendran, если он работает, не стесняйтесь принять и / или подтвердить мой ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню