是什么区别decimal,float并double在.NET?
什么时候会有人使用其中一种?
为什么以下程序会打印出打印的内容?
class Program
{
static void Main(string[] args)
{
float f1 = 0.09f*100f;
float f2 = 0.09f*99.999999f;
Console.WriteLine(f1 > f2);
}
}
Run Code Online (Sandbox Code Playgroud)
输出是
false
Run Code Online (Sandbox Code Playgroud) 这是我的电脑上发生的事情:
(double)(float)0.6
= 0.60000002384185791
(double)0.6f
= 0.60000002384185791
(double)(6/10f)
= 0.6
(double)(float)(6/10f)
= 0.6
Run Code Online (Sandbox Code Playgroud)
6/10f也是浮子,怎么可以精确到0.6?
在我看来(双)(6/10f)也应该是0.60000002384185791.有人可以帮忙解释一下吗?谢谢!