确保你的 float,double 值 不被 改变

来源:互联网 发布:linux怎样提取dsdt 编辑:程序博客网 时间:2024/05/18 13:26

最近在做一套系统的时候,发现数据不对,原来是float的初始值已经被改变了。

float f1 =1543.56f;

调试跟踪的时候发现 f1 = 1543.5601了。

分析原因:

1.float 在初始化的时候进行了运算,是2e次幂。f1 = 2048.64f就不会有这个问题。

2.超出float 的精度的时候,float也会做出处理,使你的值被改变。

解决办法:

1.自定义数据结构体,如C# 的Decimal等

2.采用大数计算方法。

为此,总结网上朋友的一些经验,自己写了一个Decimal,仅供大家参数 使用

原创粉丝点击