我正在做计算,在调试时我发现了这个:
double num = 1/252;
当我调试它时,数字设置为零(0)。是否有一个原因?我想将其作为实际计算。
Thanks
是 - 该计算正在执行integer算术。尝试这个:
double num = 1.0 / 252.0;
基本上,分配结果的变量的类型不会影响正在执行的算术运算。一个整数除以另一个整数的结果是一个整数;如果要使用浮点运算,则需要将一个或另一个操作数设为浮点类型。使用文字执行此操作的一种简单方法是在末尾添加“.0”。另一种选择是使用d
suffix:
double num = 1d / 252d;
请注意,您只需要真正做到one操作数是一个浮点值才能工作,但为了清楚起见,我可能会在这种情况下同时执行这两种操作。
当然,使用文字很容易做到这一点,但对于其他表达式(变量、方法调用的结果等),您需要使用强制转换:
int x = 1;
int y = 252;
double num = (double) x / (double) y;
同样,您只需要投射其中一个,因此这也可以:
int x = 1;
int y = 252;
double num = (double) x / y;
请注意,这并不是除法所特有的 - 它也会影响其他算术运算符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)