欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-20 17:21:15
在C#语言中,float、double以及decimal类型都可以用来表示小数,但三者还是有一定的不同,有效数字为相比的话,decimal类型的有效数字最大,float类型最小。计算浮点类型的运算,如果只有float和double类型选择的话,建议选择double类型,计算误差相对小一些。如果是涉及 ......

在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类型来存储变量值以及运算结果。

备注:原文转载自博主个人站it技术小趣屋,原文链接为 c#中float、double以及decimal类型有何不同_it技术小趣屋