long是高于double精度的一个基础变量类型,你在这里的强行转换会产生精度缺失的问题。
这个是我运行你的代码的结果,可以看出精度的缺失吧?
long是一个长整形变量,而double是双精度的浮点数(其实就是小数)
然后再这里b/1000就是等于12,因为b是长整形的,他的计算结果也会事长整形的
所以需要在计算前先将b强制装换为double型的,才可以保证精度不缺失
追问谢谢您的回答,(double) b/1000是对b进行强制类型转换还是对 b/1000进行强制类型转换?
追答是对b的
(double) b/1000是对b进行强制类型转换还是对 b/1000进行强制类型转换?
追答对 b/1000进行强制类型转换