我无法在网站上找到这些规则,(当然因为我在搜索错误的内容)所以我在这里问。
将int除以int并存储在double中始终首先存储舍入的整数。我能够找到使其工作的唯一方法是在进行除法之前将两个值都转换为double。必须有更好的方法。
此外,返回类型的规则在哪里?
答案 0 :(得分:4)
实际上,没有必要更好的方式。将int除以int会产生int。所以,假设你除了5/2 - 因为在2和3之间没有整数,你得到2.如果你想要一个浮点结果,你需要使其中一个是浮点型;而不是
int f=5, t=2;
double result;
result = f/t;
制作
result = f / (double) t ;
使用类型转换来告诉它“我想要浮点除法!”。
答案 1 :(得分:3)
在编程语言中,有两种类型的操作:
如果2个操作数是Integer类型,则执行Integer操作 如果2个操作数的 ANYONE 是浮点数,则浮点运算将被执行。
<强>这样的:强>
Int / Int --------> int
Double / Int -----> Double
Double / Double --> Double
答案 2 :(得分:1)
你只需要输出一个参数来使结果成为双重
int a,b;
double d = (double) a / b;
更简单的方法是从一开始就使用双打。
double a, b;
double d = a / b;
double
可以代表每个可能的int
值而不会出现舍入错误。
答案 3 :(得分:0)
当然有更好的方法。只需将其中一个投射到double
,另一个将自动转换。
表达式的类型由存储之前的参数决定,因此当其他答案说明时,int
除以int
会产生int
,只有这样存储为double
。请注意,这不是特定于Java,它发生在我所知道的整数除法的每种语言中。