decimal

decimal在sql server里是精确值类型,精度38;

在C#里是表示 128 位数据类型。double相比,decimal 类型具有更高的精度和更小的范围,它适合于财务和货币计算。


有效位:±1.0 × 10(-28次方) 到 ±7.9 × 10(28次方)

精度:28 到 29 位

double:

有效位:±5.0 × 10(-324次方) 到 ±1.7 × 10(308次方)

精度:15 到 16 位


例子:

精度不同,一个是小数点后面精确4位,一个是精确1位

注意的是decimal(18,4)总长18位,包括1位小数点和4为小数,也就是说18-1-4=13整数位只有13位,小数点后有4位

decimal(19,1)总长19位,17位整数,1位小数