当前位置: 首页 > 编程笔记 >

浅谈c# 浮点数计算

徐学潞
2023-03-14
本文向大家介绍浅谈c# 浮点数计算,包括了浅谈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);
}

运行结果:

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

啦啦啦!!!!

 类似资料:
  • 本文向大家介绍浅谈python 读excel数值为浮点型的问题,包括了浅谈python 读excel数值为浮点型的问题的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇浅谈python 读excel数值为浮点型的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍简单谈谈php浮点数精确运算,包括了简单谈谈php浮点数精确运算的使用技巧和注意事项,需要的朋友参考一下 bc是Binary Calculator的缩写。bc*函数的参数都是操作数加上一个可选的 [int scale],比如string bcadd(string $left_operand, string $right_operand[, int $scale]),如果scale没有

  • 对于过去c++面经,都是重基础,能从计算机基础几门课中抽离出自己对于计算机本身的理解就能够得心应手,再结合实际的技术开发,甚至剖析源码也是很好的方式,重点在于看你有没有基本的计算机素养和兴趣,一个重视潜力和能干活的人∽ PS:有想来练练手的,也欢迎投递万兴科技有限公司,多实战积累经验∽ 万兴科技内推码:NTAN8PP #面经##校招##内推#

  • 本文向大家介绍浅谈C#设计模式之代理模式,包括了浅谈C#设计模式之代理模式的使用技巧和注意事项,需要的朋友参考一下 代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口.根据代理模式的使用目的不同,代理模式又可以分为多种类型,例如保护代理、远程代理、虚拟代理、缓冲代

  • 本文向大家介绍浅谈c#设计模式之单一原则,包括了浅谈c#设计模式之单一原则的使用技巧和注意事项,需要的朋友参考一下 单一原则: 程序设计时功能模块独立,功能单一更有助于维护和复用。 例如:个人计算机功能很多,如果想从中只拿出一个功能来制造一个新的东西是困难的。同时如果你的计算机开不机,同时你的计算器功能也不能用了。 在编程中如果一个类封装了太多功能和上面的结果是类似的。 单一职责原则 例1: 大家

  • 在处理浮点数时,我对C#中“精度”的实际含义有些怀疑。如果逻辑性不强,而且解释太长,我提前道歉。 我知道浮点数(例如)的精度为6到9位。假设我们有下一个代码: 我在控制台里得到了确切的数字。现在,让我们使用下一个代码: 打印了一个不同的数字:,即使这个数字有9位数,这也是极限。 这是我的第一个怀疑。精度取决于数字本身还是计算机的结构? 此外,数据以位的形式存储在计算机中,在中间,我记得将数字的小数