浅谈c# 浮点数计算

 更新时间:2017年09月24日 15:39:46   作者:大稳·杨  
本文通过具体的示例给大家演示了下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);
}

运行结果:

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

啦啦啦!!!!

相关文章

  • WPF实现时钟特效

    WPF实现时钟特效

    这篇文章主要介绍了WPF实现时钟特效,过程很简单,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • 简单实现C#窗体程序判断是否闰年

    简单实现C#窗体程序判断是否闰年

    这篇文章主要介绍了简单实现C#窗体程序判断是否闰年的相关代码,禁止窗体调整大小,关闭窗体前的判断,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • .net中常用的正则表达式

    .net中常用的正则表达式

    这篇文章介绍了.net中常用的正则表达式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • DevExpress实现GridView当无数据行时提示消息

    DevExpress实现GridView当无数据行时提示消息

    这篇文章主要介绍了DevExpress实现GridView当无数据行时提示消息,需要的朋友可以参考下
    2014-08-08
  • C#操作Excel相关方法总结

    C#操作Excel相关方法总结

    这篇文章主要介绍了C#操作Excel相关方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • C#使用throw和throw ex抛出异常的区别介绍

    C#使用throw和throw ex抛出异常的区别介绍

    这篇文章介绍了C#使用throw和throw ex抛出异常的区别,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • 解析C#设计模式编程中备忘录模式的运用

    解析C#设计模式编程中备忘录模式的运用

    这篇文章主要介绍了C#设计模式编程中备忘录模式的运用,备忘录模式用来保存与对象有关的数据用以在将来对对象进行复原,需要的朋友可以参考下
    2016-02-02
  • Unity通用泛型单例设计模式(普通型和继承自MonoBehaviour)

    Unity通用泛型单例设计模式(普通型和继承自MonoBehaviour)

    这篇文章主要介绍了Unity通用泛型单例设计模式,分为普通型和继承MonoBehaviour,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C# WPF 自定义按钮的方法

    C# WPF 自定义按钮的方法

    这篇文章主要介绍了C# WPF 自定义按钮的方法,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C# winform打开Excel文档的方法总结(必看篇)

    C# winform打开Excel文档的方法总结(必看篇)

    下面小编就为大家带来一篇C# winform打开Excel文档的方法总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论