page contents

decimal的精度为什么比double高?

轩辕小不懂 发布于 2022-03-03 14:08
阅读 621
收藏 0
分类:数据库
3209
Nen
Nen
- 程序员

float 单精度浮点 32bit,

double 双精度浮点64bit,

decimal是高精度 128bit,浮点型。

float double 是 基本类型(primitive type),decimal不是。

float 有效数字7位,范围 ±1.5 × 10E−45 to ±3.4 × 10E38

double 有效数字15/16 位,范围 ±5.0 × 10 E−324 to ±1.7 × 10E308

decimal 有效数字 28/29 位,范围 ±1.0 × 10E−28 to ±7.9 × 10E28 

decimal的有效位数很大,达到了28位,但是表示的数据范围却比float和double类型小。使用的时候会对计算时的性能有影响。

数值存储范围越小的精度越高,存储数值范围越大,精度就越不准确,如果存储正常金额的情况下,使用money,好处在于可以存储不指定的小数点位数的数值,比较真实。如果对于既要求精度,又固定小数点位数的数值存储,采用decimal(numeric),优点在于可以自定义小数点位数,精度高。如特殊情况,如数值范围巨大只能用float(real)类型了,此类型一般不提倡使用。

请先 登录 后评论