浮点数
C# 的浮点数类型,float、double ,当我们定义一个浮点数可以:
可以使用var 关键字,可以做类型推断
定义float类型,数字末尾需要加上 F或者是f
//定义一个double类型
double a1=1.1;
var a2 = 1.1;
Console.WriteLine(a2.GetType());
//定义一个float类型,数字末尾需要加上 F或者是f
float b1=1.1f;
var b2 =1.1f;
Console.WriteLine(b1.GetType());
浮点数的计算会有误差:
//浮点数的比较,出现了差错:
double a = 1.3;
double b = 1.1;
double c = 0.2;
if (a - b == c)
{
Console.WriteLine("ok");
}
else
{
Console.WriteLine(a - b);
Console.WriteLine("no");
}
结果如下:
decimal
使用decimal来定义,数字末尾需要加上 M 或者 m
var c1 = 1.1m;
decimal c2 = 1.1M;
Console.WriteLine(c1.GetType());
使用decimal计算:
//使用decimal类型
decimal d = 1.3m;
decimal e = 1.1m;
decimal f = 0.2m;
if (d - e == f)
{
Console.WriteLine(d - e);
Console.WriteLine("ok");
}
else
{
Console.WriteLine("no");
}
结果如下:
所以,涉及到浮点数的运算与比较,请使用decimal类型。