Java数值计算精度问题 码拜 10年 ago java精度doublefloat四舍五入 我想要得到一个数的2/3,然后四舍五入,比如数值为3,那么2/3则等于2 直接3*(2/3)这样在java中计算得出的结果是0,哪位大哥知道的指导下,麻烦给个实例代码参考 谢谢! 20分 直接使用2/3 都是int型的,计算的结果也是int型的,结果值就是0了 转为double型,计算可以得到小数位 double od = (double)(2)/3; System.out.println(od); System.out.println(od * 3); 30分 同上,2和3都是整型的数,计算的结果也只能是整形的,所以结果是0 如果想要得到比较精确的数就要用浮点型。 加个单精度或双精度的后缀就行了: system.out.println(3*(2f/3)); system.out.println(3*(2d/3)); 上面的结果都是2.0 java有自动的类型转换,会将整型转换为浮点型 至于四舍五入就用 int a = 4; system.out.println(Math.round(a*(2f/3))); 结果为3 CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Java数值计算精度问题!