java除法 ,忽然蒙了

2024-12-15 11:44:07
推荐回答(5个)
回答1:

d=30d/60d 或 d=30f/60f

因为int/int 是整数运算,所以结果会自动取整 取整就变成了0了
所以你运算的时候就必须是float或double

回答2:

很明显,你的除数和被除数都是整数,整数除法则是取商,30除以60,商是0,转成double就是0.0,如果你想计算正确的结果,应该用double d = 30d/60d; 后面加d表示这个数是double类型,加f表示float类型。

回答3:

必须写成 double d=(double)30/60 或 d=30.0/60;
否则是整数除整数,结果还是整数(取结果的整数部分)
double d=(double)i/j ;或 d=(i+0.0)/j;

回答4:

被除数和除数都是整数,结果会自动取整数部分,所以0.5取整就只有0了,最后再赋值给double变量 d ,打印出来自然就是 0.0 了.
数字运算,可使用 BigDecimal 类.

回答5:

byte(char short) int long float double 从左到右就近向上转化原则. 比方说 3/2.0 或者3.0/2 一个int,一个double 会把int类型的2转化为double类型的2 然后进行运算.