日期:2014-05-19  浏览次数:21344 次

单价、金额等数据用decimal好还是double好?
使用C#2005和SQLServer2000
是不是C#的decimal对应SQL的Money
C#的double对应SQL的Float

程序中要有单价金额的钱的数据
应该用C#的decimal好还是   double好?


------解决方案--------------------
C#的decimal好^^^^^
------解决方案--------------------
C# 用decimal较多些!

------解决方案--------------------
都不好……,这些运算必须用整型,否则误差越积越多,没法对帐。
------解决方案--------------------
decimal
------解决方案--------------------
to:Ivony

金额怎么能用整型。。。汗,还是decimal吧,这个也不是浮点型
------解决方案--------------------
to Ivony(授人以鱼不如授人以渔,上海谋生)
是不是先去掉小数点,然后计算,再确定小数点位置?
说说你的思想
------解决方案--------------------
把金额乘以100进行整数运算
------解决方案--------------------
去查了。。。

http://www.msdn.net/library/chs/default.asp?url=/library/CHS/csspec/html/vclrfcsharpspec_4_1_7.asp

decimal 类型是适合财务和货币计算的 128 位数据类型。decimal 类型可以表示具有 28 或 29 个有效数字、从 1.0 × 10-28 到大约 7.9 × 1028 范围内的值。

与浮点型相比,decimal 类型具有较高的精度,但取值范围较小。因此,从浮点型到 decimal 的转换可能会产生溢出异常,而从 decimal 到浮点型的转换则可能导致精度损失。由于这些原因,在浮点型和 decimal 之间不存在隐式转换,如果没有显式地标出强制转换,就不可能在同一表达式中同时使用浮点操作数和 decimal 操作数。

------解决方案--------------------
取决于你的应用。
如果是收银用无所谓啦,如果决算周期较长的财务,包含利率、汇率的计算,用精度高的类型。
------解决方案--------------------
十进制数是由符号、数值和比例因子组成的 ' ' '浮点值 ' ' ',数值的每一位的范围都是 0 到 9,比例因子指示分隔数值的整数和小数部分的浮点小数点的位置。

查MSDN要查对地方。