[问题] 如何直接判断浮点数运算时的误差?(赠P币)

楼主: baobao566 (宝宝)   2018-11-29 08:14:59
  为了这个问题困扰了许久,不断地查资料,查完这个观念,又看到新的名词与此题
有关联。以我查到的资料VB.Net在浮点数运算时会将数字以IEEE754来标准来做,默认的
浮点数型态是Double,所以是64位,有误差是因为将他转成2进制,小数部分如果无限
循环,取到53位往最靠近的舍入(Round to nearest),二进制的这个模式我不太懂,
翻资料查到的大概又都是英文...。
  还有一些环境的因素,我看到一个文件上面说编译器可能会帮你最佳化运算式,
例如说x = a+b-a -> x = b,那这题有很多环境的问题,我要如何判断呢?
(出处:https://goo.gl/oAzyNB Compiler Optimization)
  如果判断此题需要手算,请问有无快速手算判断的方法?此题是今年高职技艺竞
赛的程式设计赛前模拟学科试题,有想过他可能只是出经典范例来考你知不知道浮点
数有误差,如果只是这样就太好了,但是以防万一还是有个准确判断的方法比较安心。
作者: alan23273850   2018-11-30 16:31:00
所以原 PO 有按照 IEEE 标准先跑过一遍吗
作者: suhorng ( )   2018-12-02 01:23:00
Round to nearest even 要让舍去或 *进位* 后是偶数XXXXXX11 => 进位 XXXXXX01 => 舍去不只二进制有这样, 十进制也有 "四舍六入五成双"

Links booklink

Contact Us: admin [ a t ] ucptt.com