我一直试图弄清楚如何在.NET Micro Framework(.NETMF)中解析double,其精度与普通.NET框架相同。
当我在经典.NET框架中执行此操作时:
Debug.Print(Double.Parse("4213238").ToString());
我得到预期的输出,4213238。
但是当我在.NETMF中做同样的事情时,我得到了非精确输出4213238.0000000009。在两个.NET框架实现中,double的大小是8个字节。我需要做什么才能使.NETMF Double.Parse的工作方式与普通的.NET框架Double.Parse相同?
有没有比为此编写解析器方法更好的方法?
答案 0 :(得分:3)
我得到非精确输出4213238.0000000009
不,这很精确。 Double可存储15位有效数字。算上他们,你得到了所有。其余的只是随机噪声数字,其值受浮点硬件实现的影响。您的MF目标具有不同的硬件。没有选择其他类型就没有可用的魔法,只显示较少的数字就没有魔力。 Int或long当然是一个很好的选择,它们非常精确。