1

我一直试图弄清楚如何以与普通 .NET 框架相同的精度解析.NET Micro Framework (.NETMF) 中的双精度。

当我在经典的 .NET 框架中执行此操作时:

Debug.Print(Double.Parse("4213238").ToString());

我得到预期的输出,4213238。

但是当我在 .NETMF 中做同样的事情时,我得到了非精确的输出 4213238.0000000009。在两个 .NET 框架实现中,double 的大小都是 8 个字节。我需要做什么才能使 .NETMF Double.Parse 以与普通 .NET 框架 Double.Parse 相同的方式工作?

有没有比为此编写解析器方法更好的方法?

4

1 回答 1

3

我得到不精确的输出 4213238.0000000009

不,这很精确。Double 可以存储 15 位有效数字。数一数,你都得到了。其余的只是随机噪声数字,其值受浮点硬件实现的影响。您的 MF 目标具有不同的硬件。如果不选择另一种类型,就没有可用的魔法来获得更多,只是显示更少的数字没有魔法。Int 或 long 当然是一个很好的选择,它们非常精确。

于 2013-03-14T01:37:22.890 回答