using System;
namespace CSharplearn
{
class Program
{
static void Main(string[] args)
{
decimal decimalNum = 1.6M;
double doubleNum1 = 0.1F * 16F;
double doubleNum2 = 0.1D * 16D;
float floatNum = 0.1F * 16F;
Console.WriteLine("0.1 * 16 = 1.6");
Console.WriteLine("decimalNum = "+(decimalNum));
Console.WriteLine("doubleNum1 = "+(doubleNum1));
Console.WriteLine("doubleNum2 = "+(doubleNum2));
Console.WriteLine("floatNum = "+(floatNum));
Console.WriteLine($"{ decimalNum}!={ (decimal)doubleNum1}");
Console.WriteLine($"{(double)decimalNum}!={doubleNum1}");
Console.WriteLine($"{doubleNum1}!={doubleNum2}");
}
}
}
结果:
我们都知道0.1*16=1.6,但是碰上小数运算和类型转换原本我们自己认为相等却因为精度问题显示不相等.(虽然!=是我手打上去的但是用其他检测方法一样会得出false的结果)所以在小数运算时要不改用decimal要不就判断两数之差是否相似于某个值.