为了账号安全,请及时绑定邮箱和手机立即绑定

在多种编程语言(例如C / C ++,D,Go)中寻找具有相似精度的数据类型

在多种编程语言(例如C / C ++,D,Go)中寻找具有相似精度的数据类型

Go
守着一只汪 2021-05-13 09:10:51
我正在尝试使用两种或更多种编程语言来实现带有浮点数的程序。该程序确实说了50k次迭代,最终使误差很小。为了确保我的结果具有可比性,我想确保使用不同语言的相同精度的数据类型。请问C / C ++的float / double与D和Go中的float / double之间是否存在对应关系。我希望C / C ++和D在这方面相当接近,但不确定。非常感谢。
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

通常,对于编译语言,浮点格式和精度归结为两点:

  1. 用于实现硬件不直接支持的浮点函数的库。

  2. 系统正在运行的硬件。

这也可能取决于您提供的编译器选项(以及编译器的一般复杂程度)-许多现代处理器都具有矢量指令,并且其结果可能与使用“常规”浮点指令(例如FPU vs. x86处理器上的SSE)。有时您可能还会看到差异,因为x86 FPU上的内部计算是80位,计算完成后存储为64位。

但是通常,在给定相同的硬件和相似类型的编译器的情况下,我期望从两种不同的[足够相似]的语言中获得相同的结果[和大致相同的性能]。

大多数语言都只有“ double”(通常是64位)或“ single and double”(例如,浮点数-在C / C ++中通常为32位和double-通常为64位-可能还有D,但是我是不是说成 D)。


查看完整回答
反对 回复 2021-05-31
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信