好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

浅谈c# 浮点数计算

给大家看个计算题,看看大家的算术能力。

0.1 +0.1 +0.1 - 0.3 等于几?

大家可能会说这么简单的问题,是不是看不起我?肯定等于0啊。

如果大家直接算的是没有问题的,但是如果用计算机呢?

见证奇迹的时刻到了,看代码:

?

void main()

{

   var f = 0.1 +0.1 +0.1 -0.3;

   console.writeline( "f=={0}" ,f);

}

运行结果:

这是因为计算机的精度的问题,在计算机的内部存储和运算的精度缺失等问题,我解释的可能不太明白,不过,大家可以用下面的方案进行解决:

?

void main()

{

   //var f = 0.1 +0.1 +0.1 -0.3;

   //console.writeline("f=={0}",f);

  

   var f1 = new decimal (0.1) + new decimal (0.1) + new decimal (0.1) - new decimal (0.3);

   console.writeline( "f1 == {0}" ,f1);

}

运行结果:

这样就是正常的运算结果了。

啦啦啦!!!!

原文链接:http://HdhCmsTestcnblogs测试数据/dawenyang/p/7553728.html

dy("nrwz");

查看更多关于浅谈c# 浮点数计算的详细内容...

  阅读:49次