decimal 关键字表示 128 位数据类型。同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。decimal 类型的大致范围和精度如下表所示。
类型 | 大致范围 | 精度 | .NET Framework 类型 |
---|
如果希望实数被视为 decimal 类型,请使用后缀 m 或 M,例如:
decimal myMoney = 300.5m;
整型被隐式转换为 decimal,其计算结果为 decimal。因此,可以用整数初始化十进制变量而不使用后缀,如下所示:
decimal myMoney = 300;
在浮点型和 decimal 类型之间不存在隐式转换;因此,必须使用强制转换在这两种类型之间进行转换。例如:
decimal myMoney = 99.9m;
double x = (double)myMoney;
myMoney = (decimal)x;
double x = (double)myMoney;
myMoney = (decimal)x;
还可以在同一表达式中混合使用 decimal 和数值整型。但是,不进行强制转换就混合使用 decimal 和浮点型将导致编译错误。
可以通过使用 String.Format 方法或