可能重复:
tan 45 gives me 0.9999
当我使用tan
时,我得到一个很长的答案:
double degrees = 45.0;
double radians = Math.toRadians(degrees);
System.out.println(Math.tan(radians));
当我运行此代码时,我得到:
0.9999999999999 repeating
为什么?
答案 0 :(得分:1)
因为双打(或实际上系统下属翻倍,IEEE754)并不完美。使用双打和浮点数时(使用任何语言,而不仅仅是Java),请始终注意这一点。
答案 1 :(得分:1)
为什么不呢?这几乎是一个。浮点运算永远不会完全。
原因是CPU中的数字以二进制形式表示
并且二进制的fosoating点表示不能完全代表例如1/10。
稍等一下浮点编程。