java - 有没有办法使不同语言的这两个值保持一致?

标签 java c++ sqrt math.sqrt

两种语言的 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/

相关文章:

java - 使用 freemarker 将字符串中的最后 2 个字符大写?

c++ - 如何在 C++ 中使用 mex.h

c++ - 重载 operator->() 以更改被调用函数的返回值

c++ - Scala 严格类型系统与 C++ 类型系统

c - 从 C 中的另一个文件读取输入的家庭作业程序

java - CaffeonSpark构建'src/main/java/caffe/Caffe.java需要caffe.proto错误

java - 泛型如何适用于嵌套列表

java - 将二维数组中的第二列和第三列检索到数组

delphi - Delphi 和 Free Pascal 中的 SQRT 函数的准确度如何?

python - 大量的 math.sqrt() 和 math.pow() 中的不准确性来自哪里?