【转载】 C#中float、double以及decimal类型有何不同

在C#语言中,float、double以及decimal类型都可以用来表示小数,但三者还是有一定的不同,有效数字为相比的话,decimal类型的有效数字最大,float类型最小。计算浮点类型的运算,如果只有float和double类型选择的话,建议选择double类型,计算误差相对小一些。如果是涉及到财务或者货币金额等金融计算,建议使用十进制decimal类型,decimal的有效位数很大,达到了28位,可以保证计算结果更为精准。

针对这3种类型,其中float和double为基础类型,而decimal不是。

float类型:单精度浮点类型  32bit。有效数字7位,范围 ±1.5 × 10E−45 to ±3.4 × 10E38

double类型:双精度浮点    64bit。有效数字15/16 位,范围 ±5.0 × 10 E−324 to ±1.7 × 10E308

decimal类型:此类型为高精度类型,128bit,浮点型。范围 ±1.0 × 10E−28 to ±7.9 × 10E28

其中上述表达式中,E表示几次方的意思。

decimal类型表示的数字范围比float和double小,但计算结果误差比上述两者小,一般需要高精度小数运算或者金融财务货币计算的时候,都会选择decimal类型来存储变量值以及运算结果。

posted @ 2019-07-12 23:42  江湖逍遥  阅读(3956)  评论(0编辑  收藏  举报