amw*_*l04 6 c c++ java go rust
我目前正在进行坐标之间的距离计算,并且根据所使用的语言得出的结果略有不同。
计算的一部分是计算cosine给定值的radian。我得到以下结果
// cos(0.8941658257446736)
// 0.6261694290123146 node
// 0.6261694290123146 rust
// 0.6261694290123148 go
// 0.6261694290123148 python
// 0.6261694290123148 swift
// 0.6261694290123146 c++
// 0.6261694290123146 java
// 0.6261694290123147 c
Run Code Online (Sandbox Code Playgroud)
我想尝试并了解原因。如果16dp c四舍五入,过去是唯一的“正确”答案。我感到惊讶的是python,结果有所不同。
目前,这种微小的差异正在被放大,并且超过000个位置增加了不小的距离。
不太确定这是如何重复的。另外,我要求的是整体答案,而不是具体的语言。我没有计算机科学学位。
更新 我接受这可能是一个太宽泛的问题,我想我很好奇为什么我的背景不是CS。我感谢评论中发布的博客链接。
更新2
这个问题源于将服务从移植nodejs到go。Go甚至更奇怪,因为距离的总和随多个值而变化,所以我现在无法运行测试。
给定一个坐标列表并计算距离并将它们加在一起,我得到不同的结果。我没有问一个问题,但似乎go会产生不同的结果。
9605.795975874069
9605.795975874067
9605.79597587407
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这里是我正在使用的距离计算:
// cos(0.8941658257446736)
// 0.6261694290123146 node
// 0.6261694290123146 rust
// 0.6261694290123148 go
// 0.6261694290123148 python
// 0.6261694290123148 swift
// 0.6261694290123146 c++
// 0.6261694290123146 java
// 0.6261694290123147 c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |