Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 计算非常精确的数字_Java - Fatal编程技术网

Java 计算非常精确的数字

Java 计算非常精确的数字,java,Java,我试图计算直角三角形的边,给定角度θ和斜边。我指定斜边应该等于五。然后,根据标准三角,使用cos和sin计算边。在计算边长后,我发现斜边实际上是5.000000000002长,或者说,与5稍有偏差。就我正在编写的代码而言,如果我不能得到5的完美斜边长度,我更希望程序返回与4.9999999999的斜边长度相对应的边长,或者在较小的边上尽可能接近5。我所有的号码都是双倍的。你知道这能不能做到吗 我是用Java编写的。如果需要进行精确计算,请不要使用float或double。请改用BigDecima

我试图计算直角三角形的边,给定角度θ和斜边。我指定斜边应该等于五。然后,根据标准三角,使用cos和sin计算边。在计算边长后,我发现斜边实际上是5.000000000002长,或者说,与5稍有偏差。就我正在编写的代码而言,如果我不能得到5的完美斜边长度,我更希望程序返回与4.9999999999的斜边长度相对应的边长,或者在较小的边上尽可能接近5。我所有的号码都是双倍的。你知道这能不能做到吗


我是用Java编写的。

如果需要进行精确计算,请不要使用float或double。请改用BigDecimal.related:谢谢大家的复制品,我自己找不到。我将提到这些。