Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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_Floating Accuracy - Fatal编程技术网

Java-具有正确舍入的自然对数

Java-具有正确舍入的自然对数,java,floating-accuracy,Java,Floating Accuracy,谢天谢地,关于舍入误差,这个问题是非常透明的: 如果一个方法的错误总是小于0.5 ulps,那么该方法总是返回最接近精确结果的浮点数;这种方法是正确的四舍五入。一个正确的四舍五入方法通常是浮点近似的最佳方法;然而,要使许多浮点方法正确地四舍五入是不切实际的。相反,对于Math类,某些方法允许1或2个ULP的更大错误范围。非正式地说,在1 ulp错误范围内,当精确结果是可表示的数字时,应将精确结果作为计算结果返回;否则,可能会返回包含精确结果的两个浮点值中的任何一个 每个浮点方法在ulps中都提到

谢天谢地,关于舍入误差,这个问题是非常透明的:

如果一个方法的错误总是小于0.5 ulps,那么该方法总是返回最接近精确结果的浮点数;这种方法是正确的四舍五入。一个正确的四舍五入方法通常是浮点近似的最佳方法;然而,要使许多浮点方法正确地四舍五入是不切实际的。相反,对于Math类,某些方法允许1或2个ULP的更大错误范围。非正式地说,在1 ulp错误范围内,当精确结果是可表示的数字时,应将精确结果作为计算结果返回;否则,可能会返回包含精确结果的两个浮点值中的任何一个

每个浮点方法在ulps中都提到了它的错误界限。特别是对于
Math.log()

返回双精度值的自然对数(以e为底)…计算结果必须在精确结果的1 ulp范围内

因此,
Math.log()


我需要一个正确的base-e日志实现。我在哪里可以找到一个?

你看到这个了吗:?BigDecimal应该提供更好的精度,并且应该允许您选择舍入逻辑。(几乎可以肯定的是,计算成本会更高。)从
log()
中要求精确的四舍五入结果会陷入制表商的两难境地,是真正的四舍五入问题,还是股票数学库的精度不够?正如其他人所说,通过使用具有更多可选精度的格式,精度问题很容易解决。然而,如果问题真的是在选定精度的极限下的舍入行为,那么这是一个技术性很强的问题,不会那么容易处理。您看到了吗?BigDecimal应该提供更好的精度,并且应该允许您选择舍入逻辑。(几乎可以肯定的是,计算成本会更高。)从
log()
中要求精确的四舍五入结果会陷入制表商的两难境地,是真正的四舍五入问题,还是股票数学库的精度不够?正如其他人所说,通过使用具有更多可选精度的格式,精度问题很容易解决。然而,如果问题真的是在选定精度的极限下的舍入行为,那么这是一个技术性很强的问题,不太容易处理。