场景:
客户提示发料时提示库存不足,可肉眼比对发料数量与库存数量没有一点问题。
但调度跟踪却发现出现“不可思议”的异常。
简单分析:
1.转Decimal再计算没问题。精度较高,存储方法也不一样,所以数据没有丢失。
2.Double时数据丢失。精度最高,转二进制后有数据溢出,导致数据丢失。
3.根据数值,C#默认为Double,数据丢失。
总结:
读了几个帖子,C#为了支持金融、货币计算引入Decimal类型。所以,在处理金融等数据时,以后还是直接用Decimal。
引用:
http://bbs.csdn.net/topics/70318335
http://www.cnblogs.com/jhxk/articles/1605755.html
http://www.cnblogs.com/haiyang1985/archive/2009/03/03/1402394.html
http://blog.csdn.net/lai123wei/article/details/7220276 读完这个帖子,才理解了我的问题出现的原因。