Java-使用double可以更精确

问题描述 投票:0回答:1

我目前正在为uni编写一个项目,我想知道是否有任何好的做法可以更精确地with double值。也就是说,如果我直接在return语句中只写一个长表达式,则精度是否有所不同?或者,如果将表达式拆分为final变量(顺便说一句,它也更具可读性)会更好吗?例如,假设我有以下公式:Math.sin(a) / Math.cos(b) + Math.tan(c) / d;像下面这样写会更好吗?

final double sinA = Math.sin(a);
final double cosB = Math.cos(b);
final double tanC = Math.tan(c);
return sinA / cosB + tanC / d;

谢谢你!

java floating-point double precision floating-accuracy
1个回答
2
投票

如果您的JVM / JIT正确实现了Java语言规范所要求的IEEE754,不会有任何区别。

我个人会写

double ret = Math.sin(a) / Math.cos(b) + Math.tan(c) / d;
return ret;

因为这使我可以在return ret;语句上设置行断点,这使我可以检查返回值,而无需使用凌晨3点在生产服务器上可能无法使用的调试工具!我发现您编写它的方式尚不清楚:依赖变量名比标准函数名更容易重构损坏。

您可以相信编译器将优化出额外的变量ret

© www.soinside.com 2019 - 2024. All rights reserved.