值类型介绍——decimal类型

 值类型介绍——decimal类型

1.decimal类型的定义

decimal关键字表示128位数据类型。同浮点型相比,decimal类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。该类型的存储值如表4-3所示。

表4-3  decimal类型

   

   

   

   

decimal

±1.0 * 10e−28至±7.9 *10e28

2829位有效

System.Decimal

2.decimal类型的标识

如果希望实数被视为decimal类型,请使用后缀m或M,例如:

decimal myMoney = 300.3m;

如果没有后缀m,数字将被视为double类型,从而导致编译器错误。

3.decimal类型的转换

整型被隐式转换为decimal,其计算结果为decimal。因此,可以用整数初始化十进制变量而不使用后缀,如下所示:

decimal myMoney = 300;

在浮点型和decimal类型之间不存在隐式转换;因此,必须使用强制转换在这两种类型之间进行转换,如下所示:

decimal myMoney = 99.8m;

double x = (double)myMoney;

myMoney = (decimal)x;

4.decimal类型的十进制输出

可以通过使用String.Format方法或System.Console.Write方法(它调用String.Format())来格式化结果。指定货币格式时需要使用标准货币格式字符串“C”或“c”。

在此例中,同一个表达式中混合使用了decimal和int,计算结果为decimal类型。

如果试图使用下面这样的语句添加double和decimal变量:

double x = 8;

Console.WriteLine(d + x); // Error

将导致下列错误:

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

功能说明:decimal类型的十进制输出。

程序清单4-3

using System;

public class Decimal_Test

{

    static void Main()

    {

        decimal d = 5.6m;

        int y = 9;

        Console.WriteLine(d + y);  

    }

}

输出结果如图4-3所示。

图4-3  decimal类型的十进制输出

功能说明:在此例中,输出用货币格式字符串格式化。注意:其中x被舍入,因为其小数点位置超出了$0.99。而表示最大精确位数的变量y严格按照正确的格式显示。

程序清单4-4

using System;

public class Format_decimal_Test

{

    static void Main()

    {

        decimal x = 0.999m;

        decimal y = 1234567890m;

        Console.WriteLine("My amount = {0:C}", x);

        Console.WriteLine("Your amount = {0:C}", y);

    }

}

输出结果如图4-4所示。

图4-4  输出用货币格式字符串格式化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值