两种语言的 sqrt 函数有问题。
我有一个 JAVA API 和 C++ 客户端,我尝试在两者中使用 sqrt
函数,但它们给我的数字略有不同。
输入是:
x = 25.0
y = 5625.0
java :
double distance = Math.sqrt(x + y);
// outputs 75.16648189186454
C++:
const double distance = std::sqrt(x + y);
// outputs 75.166481891864535
我需要的数字与我在 API 和客户端中将它们用作种子的数字相同。有什么办法吗?理想情况下,java
输出 75.16648189186454
,但是,我会选择其中一个。
非常感谢
最佳答案
当我查看 C++ 和 Java 的位时,它们会导致:
Java:
4634989787871853517
C++:
4634989787871853517
这意味着它们都是相同的位。由于它们应该遵循 IEEE-754,这意味着两种语言具有相同的值。您只会看到一个输出以一种语言被略微截断,但值却没有。
关于java - 有没有办法使不同语言的这两个值保持一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57545711/