我正在玩C#中的函数重载。下面的代码让我意识到double数据类型可以容纳浮点值:
class program
{
static void Main(string[] args)
{
test(2f);
Console.Read();
}
static void test(double a)
{
Console.WriteLine("double called" + a);
}
}
与上面的代码相同,我也发现float可以容纳int值。 Double可以容纳int和float这两个值。
首先我认为这是由于数据类型的范围。
但十进制改变了我的想法,因为下面的代码没有编译:
class Program
{
static void Main(string[] args)
{
test(2d); //Invalid argument error
Console.Read();
}
static void test(decimal a)
{
Console.WriteLine("decimal called" + a);
}
}
为什么decimal数据类型不能容纳float和double值,而double数据类型可以容纳float值,而float数据类型可以容纳int值?