Java:如何获得正确的结果?

Java:如何获得正确的结果?,java,math,double,Java,Math,Double,在java中: double b = 1234 / (1234+1500); 结果是: 0.0 为什么? 如何获得正确的结果?只需将一个操作数设为双精度/浮点值- double b = (double) 1234.0/(1235+1500); 这里不需要浇铸 规则benind:如果其中一个操作数是double/float(此处为1234.0),则另一个操作数升级为double/float 您将得到0.0,因为java将是一个整数除法。要获得正确的结果,您必须至少将运算符强制转换为双精度 d

在java中:

double b = 1234 / (1234+1500);
结果是:

0.0
为什么?


如何获得正确的结果?

只需将一个操作数
设为双精度
/
浮点值
-

double b = (double) 1234.0/(1235+1500);
这里不需要浇铸


规则benind:如果其中一个操作数是
double
/
float
(此处为1234.0),则另一个操作数升级为
double
/
float

您将得到
0.0
,因为java将是一个整数除法。要获得正确的结果,您必须至少将运算符强制转换为双精度

double b = ((double)1234) / (1234+1500)

但我用一个局部变量来给输入值。。。如何实施itI只回答了您最初的问题。老实说,我不会在算术中使用双精度。使用大小数并解析输入,使其正常工作。感谢you@VigneshRajendran如果有效,请随意接受和/或投票支持我的答案。
double b = 1234D / (1234D + 1500D)