c# - float 是否可以通过 double 往返而不损失精度?

标签 c# .net floating-point precision floating-point-conversion

如果我有一个 C# float,我可以将它转换为 double 而不会丢失任何精度吗?

如果将 double 转换回 float,它的值是否完全相同?

最佳答案

是的。 IEEE754 浮点(这是 C# 必须使用的)保证了这一点:

  1. float 转换为 double 保留完全相同的值

  2. double 转换回 float 可以完全恢复原始 float

double 的集合是float 的超集。

请注意,这适用于NaN+Infinity-Infinity。零的符号也被保留。

关于c# - float 是否可以通过 double 往返而不损失精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40550861/

相关文章:

c# - 与在 Sql Server 上执行的 .NET 存储过程相关的开销是多少?

performance - ARM7 Cortex A8上的浮点状态传输

c# - Roslyn - SyntaxGenerator,生成 AutoProperty

c# - 当程序集路径和版本不同时,Assembly.LoadFrom 返回相同的程序集

c# - 如何以编程方式替换 .NET 程序集中的嵌入式资源?

c++ - 在 C 中解释 float 据

java - java.lang.Math.PI 等于 GCC 的 M_PI 吗?

c# - 重置密码时出错

c# - 让 FxCop 抑制整个类型的警告?

c# - 如果数据绑定(bind),如何将表单/字段标记为 "dirty"?