本文目的是使读者掌握decimal数据类型的定义、赋值和初始化的方法。
C#中的decimal数据类型的数值后必须有后缀“M”或“m”,否则编译时将给出如下的错误信息:
错误 不能隐式地将 Double 类型转换为“decimal”类型;请使用“M”后缀创建此类型
造成这个问题的原因主要是,在C#中,小数默认以双精度类型(double)进行存储的,而默认情况下,double无法完成到decimal类型的转换,需要指定后缀来完成。
同时,通过本案例可以进一步学习输出格式控制的方法。
源代码如下:
using System;
namespace DecimalType
{
class Program
{
static void Main(string[] args)
{
//decimal数据类型在赋值或初始化时,
//其值后必须有后缀“M”或“m”
decimal dc1 = 22.3m;
decimal dc2 = 32.4565M;
decimal dc3;
dc3 = 235.2335m;
//下面初始化的值格式有误
//decimal dc4 = 43.343;
Console.WriteLine("dc1={0:N2}", dc1);
Console.WriteLine("dc2={0:N2}", dc2);
Console.WriteLine("dc3={0:N3}", dc3);
}
}
}
运行结果如下:
dc1=22.30
dc2=32.46
dc3=235.234
新闻热点
疑难解答