您的位置:首页 > 编程语言 > C#

C#的float,double和decimal

2017-08-20 14:46 363 查看
C#里面处理小数的类型大致有:

float :0.1f 32位

double :0.1d 64位

decimal:0.1m 128位

decimal的精度比double高,但数值范围比double小。decimal虽然是128位,但这只是因为它的小数位可以很多,但整体数值范围却没有double大。

但是在C#中,给人感觉,好像double在精度兼容方面比decimal要好,比如

decimal m;
string value = Decimal.TryParse("3.3900000000000005E-4",out m) ? m.ToString() : "";// value == ""


结果value就是空的。

double d;
string value = Double.TryParse("3.3900000000000005E-4",out d) ? d.ToString() : "";// value == "0.000339"


我就不知道是Decimal.TryParse不支持科学计数法呢还是怎么样

具体见拙作:

SQL SERVER的浮点数类型及与C#的对应关系

也可以参考

c#中decimal ,double,float的区别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: