decimal和float好区分。Decimal和FLOAT同为C#中的数据类型,也都属于浮点数类型。但通常用法上decimaldecimal128位高精度浮点数,常用于财务和货币计算;而float32位单精度浮点型则多用于普通的浮点数运算。decimal的精度比double大,但所能储存的最大数却比double要小。具体的详解如下:
(1)
DECIMAL 数据类型可以提供小数所需要的实际存储空间,但也有一定的限制,您可以用 2
到 17 个字节来存储从-10 的 38 次方-1 到 10 的 38 次方-1 之间的数值。可将其写为
DECIMAL[ p [s] ]的形式,p 和 s 确定了精确的比例和数位。其中 p 表示可供存储的值的
总位数(不包括小数点),缺省值为 18; s 表示小数点后的位数,缺省值为 0。 例如:
decimal (15 5),表示共有 15 位数,其中整数 10 位,小数 5。 位表 4-3 列出了各精
确度所需的字节数之间的关系。
(2)
FLOAT 数据类型可精确到第 15 位小数,其范围为从-1.79E -308 到 1.79E +308。 每个
FLOAT 类型的数据占用 8 个字节的存储空间。 FLOAT 数据类型可写为 FLOAT[ n ]的形
式。n 指定 FLOAT 数据的精度。n 为 1 到 15 之间的整数值。当 n 取 1 到 7 时,实际
上是定义了一个 REAL 类型的数据,系统用 4 个字节存储它;当 n 取 8 到 15 时,系统
认为其是 FLOAT 类型,用 8 个字节存储它。 |