浅谈c# 浮点数计算
2017-09-24 15:39
423 查看
给大家看个计算题,看看大家的算术能力。
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); }
运行结果:
这样就是正常的运算结果了。
啦啦啦!!!!
您可能感兴趣的文章:
相关文章推荐
- c# 浮点数计算问题
- C# 实现农历计算和转换
- aabb的4位平方数问题以及浮点数计算时可能产生的误差
- php浮点数计算问题
- c#字符串中包含的运算符按正常计算 例如按四则运算等,类似公式计算,很好很强大
- C# 计算字符串里的汉字多少个.数字多少个.英文多少个.符号和空格多少个
- [走火入魔失眠夜]浅谈管理软件信息安全,用户名、密码的加密解密【附C#配套加密解密源码】
- 浅谈C# 多态的法力
- 用C#实现计算标准正态分布
- 浅谈思路严谨的管理软件中的用户在线状态控制【附部分C#参考代码】
- 【讨论】为啥0.2+0.4 != 0.6(浮点数计算的精度问题)
- 浅谈C#中的结构
- c# 统计方法执行时间,计算缓存读取数据方法的命中率
- C#/C++/Fortran 在32位/64位下数学计算性能对比
- C#计算一段程序运行时间的三种方法
- BigDecimal代替浮点数精确计算用法简介
- 利用BigDecimal精确的计算浮点数
- 浅谈正则表达式验证身份证号码(C# winform)
- 【C#】浅谈DataSet与DataTable
- 浅谈C# 多态的魅力(虚方法,抽象,接口实现)