decimal(C# 参考)

 

decimal 类型的大致范围和精度如下表所示。

 

类型

大致范围

精度

.NET Framework 类型

decimal

0 - 28)

28 到 29 位有效位

SystemDecimal

文本

decimal 类型,请使用后缀 m 或 M,例如:

decimal myMoney = 300.5m;

double 类型,从而导致编译器错误。

转换

因此,可以用整数初始化十进制变量而不使用后缀,如下所示:

decimal myMoney = 300;

例如:

decimal myMoney = 99.9m;
double x = (double)myMoney;
myMoney = (decimal)x;

decimal 和浮点型将导致编译错误。

隐式数值转换表(C# 参考)

显式数值转换表(C# 参考)

格式化十进制输出

StringFormat

示例

decimal 类型。

decimal 变量:

double x = 9;
Console.WriteLine(d + x); // Error

其结果是导致以下错误:

Operator '+' cannot be applied to operands of type 'double' and 'decimal'

  1. public class TestDecimal
  2. {
  3. static void Main()
  4. {
  5. decimal d = 9.1m;
  6. int y = 3;
  7. Console.WriteLine(d + y); // Result converted to decimal
  8. }
  9. }
  10. // Output: 12.1

y 严格按照正确的格式显示。

  1. public class TestDecimalFormat
  2. {
  3. static void Main()
  4. {
  5. decimal x = 0.999m;
  6. decimal y = 9999999999999999999999999999m;
  7. Console.WriteLine("My amount = {0:C}", x);
  8. Console.WriteLine("Your amount = {0:C}", y);
  9. }
  10. }
  11. /* Output:
  12. My amount = $1.00
  13. Your amount = $9,999,999,999,999,999,999,999,999,999.00
  14. */
C# 语言规范

 

有关更多信息,请参见 C# 语言规范。C# 语言规范是 C# 语法和用法的权威资料。

相关文章: