相关疑难解决方法(0)

将int除以int并将结果存储为double时出现意外的结果

我有一个奇怪的问题.

这段代码只是将一个int除以另一个int,将结果存储在一个double变量中并打印出来:

int a = 200;
int b = 557;

double divisionResult = a / b;

System.out.println("Result: " + divisionResult);
Run Code Online (Sandbox Code Playgroud)

执行此代码后,输出为:

Result: 0
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为200/5570.3590664272890485

我注意到,如果我投abdouble在分割线

double divisionResult = (double) a / (double) b;
Run Code Online (Sandbox Code Playgroud)

它完美地运作.

为什么我必须将变量转换为double来获得真正的除法结果?

java double int division

4
推荐指数
1
解决办法
8144
查看次数

Java Double/Integer

int a = 1;
int b = 10;
int c = 3;

int d = (1/10)*3

System.out.println(d)

Result: 0
Run Code Online (Sandbox Code Playgroud)

如何使此计算工作?向上或向下舍入?它应该是:(1/10)*3 = 0.1*3 = 0.3 = 0和(4/10)*3 = 0.4*3 = 1.2 = 1

非常感谢!

java math double int

0
推荐指数
1
解决办法
3589
查看次数

标签 统计

double ×2

int ×2

java ×2

division ×1

math ×1