- 主题:大佬解释一下,为何0.1+0.2的结果比0.3大?
小数咱不比大小行吗?
你可以认为小数都是近似值,差不多就行了。
别在小数上较真。
【 在 feng321 的大作中提到: 】
: a=0.1
: b=0.2
: c=a+b
: ...................
--
FROM 221.216.197.*
计算机处理浮点数都是近似,这是基础知识。
【 在 feng321 的大作中提到: 】
: 计算机,都是有道理的啊。
--
FROM 221.216.197.*
高数对CS用处不大,学点离散数学还行。
【 在 JulyClyde 的大作中提到: 】
: 虽然你这句话很正确,但是政治上很不正确呢
: 很多人都会提倡好好学高数
--
FROM 221.216.197.*
他说的是学CS的毕业之后做流体力学业务相关的app
那出来给银行做业务的是不是还得学个《货币银行学》?
【 在 PaoloMaldini 的大作中提到: 】
: 没听说计算机系学流体力学
--
FROM 221.216.197.*
业务方面的知识,可以边工作边学,但是不应该加到CS的课程中。
现在的问题是高数在CS必修课中。
【 在 adoal 的大作中提到: 】
: 按他这说法,任何业务领域知识都是CS的必修知识了-_-;;;;
--
修改:seablue FROM 221.216.197.*
FROM 221.216.197.*
电信的那套东西跟CS关系不大,EE跟CS分开是正道。
【 在 JulyClyde 的大作中提到: 】
: 如果从模拟电路到数字电路中间分开
: 高数就没啥用了
: 数字电路完全可以“假设下层可以正常工作”然后发展出上面的计算机
: ...................
--
FROM 221.216.197.*
别的语言可能是截断了,它的比较仍然是近似的。
【 在 pNeo 的大作中提到: 】
: 这么多评论都在搞笑吗?这么简单的计算给不对,这就是bug,为什么要解释其合理性?别的语言怎么不错
--
FROM 221.216.197.*
是截断的长度不同。
浮点数不能精确表示,都是近似。
【 在 feng321 的大作中提到: 】
: 只能说是python的特性。用Decimal就不会出这问题。至于为什么比0.3大,我忘记把内存中存储的精确值粘贴出来了,不过那个网站上有
--
FROM 221.216.197.*
小数部分最后怎么会有一个4,这个是属于未定义的,也就是说是由各个语言自己去处理,无论是在4之前就截断还是把4换成其它数字都是合法的。
所以我们一般都不追究这个细节是怎么处理的,绕开就行了。总之你知道实数在计算机里不可能精确表示就是了。至于怎么个模糊、近似表示法,你可以去查python语言关于浮点数部分是怎么实现的。
【 在 feng321 的大作中提到: 】
: 看了,也没用。我现在就想搞清楚,0.1+0.2是如何等于0.3000000...0004的。具体的计算过程是怎么样的?你说了 吗?
--
修改:seablue FROM 221.216.197.*
FROM 221.216.197.*
我说的是精度。精度是有限状态,而实数中的小数部分可能是无限的,所以在计算机里用浮点数表示小数部分需要确定一个精度去近似表示。
【 在 flw 的大作中提到: 】
: 你错了,浮点数是可以精确表示的。
: 不可以精确表示的是一部分十进制字面量。
--
修改:seablue FROM 221.216.197.*
FROM 221.216.197.*