В java:
double b = 1234 / (1234+1500);
результат:
0.0
Зачем?
Как получить правильный результат?
просто сделайте один из операндов double
/float
-
double b = (double) 1234.0/(1235+1500);
Здесь кастинг не требуется.
Правила benind: если один из операндов double
/float
(здесь 1234.0), то другой повышается до double
/float
.
double b = 1234D / (1234D + 1500D)
Вы получаете 0.0
потому что java будет целочисленным. Чтобы получить правильный результат, вы должны выполнить, по крайней мере, оператор, чтобы double
.
double b = ((double)1234) / (1234+1500)