我无法理解定点数和浮点数,因为Google上的定义难以理解。但是我读过的所有定义都没有提供足够简单的解释它们的真实含义。请给我一个简单的定义并附带示例。
我无法理解定点数和浮点数,因为Google上的定义难以理解。但是我读过的所有定义都没有提供足够简单的解释它们的真实含义。请给我一个简单的定义并附带示例?我无法理解定点数和浮点数,因为Google上的定义难以理解。但是我读过的所有定义都没有提供足够简单的解释它们的真实含义。请给我一个简单的定义并附带示例。
我无法理解定点数和浮点数,因为Google上的定义难以理解。但是我读过的所有定义都没有提供足够简单的解释它们的真实含义。请给我一个简单的定义并附带示例?IIIII.FFFFF
,那么你能表示的最大值是99999.99999
,最小非零值是00000.00001
。处理这些数字的每一行代码都必须内置知道小数点在哪里。9.9999999e+50
,最小非零值为0.0000001e-49
。v1 = 1234 / 100 // get the whole number
v2 = 1234 % 100 // get the decimal number (100ths of a whole).
print v1 + "." + v2 // "12.34"
在编程中,浮点数是完全不同的故事。当前的浮点数标准使用大约23位用于数字的数据,8位用于指数,1位用于符号。欲了解更多信息,请参考维基百科链接。
关于我认为固定点数的定义特征,很少有提及。关键区别在于浮点数由于四舍五入或截断而产生的误差是恒定的相对(百分比)误差。而固定点数则具有恒定的绝对误差。
使用64位浮点数,你可以确保x+y
的答案不会超过1个比特位,但一个比特位有多大呢?这取决于x
和y
-- 如果指数等于10,那么舍入最后一位表示误差为2^10=1024
,但如果指数为0,则舍入一位的误差为2^0=1
。
使用定点数,一个比特始终代表相同的数量。例如,如果小数点前有32位,小数点后有32位,那么截断误差最多会改变答案2^-32
。如果你处理的数字都接近于1
,这非常好,因为可以获得很高的精度,但如果你处理的数字具有不同的单位,那么计算出一个谷歌米的距离,然后得到2^-32
米的误差又有什么意义呢?
一般来说,浮点数可以表示更大的数字,但中等大小的数字的(绝对)误差成本更高。如果事先知道要表示的数字有多大,定点数可以获得更好的精度,因此可以将小数点放在最准确的位置。但如果不知道正在处理的单位是什么,浮点数是更好的选择,因为它们可以以足够的精度表示广泛的范围。
创建时就已经确定了,定点数不仅有固定数量的小数位(数字)而且在数学上表示为负幂。这对机械计算器非常有用:
例如,某物品的价格是 USD 23.37(Q=小数点后2位)。机器知道小数点应该在哪里!
取数字123.456789
浮点数可以让你用极高的精度表示大多数数字。 定点数精度较低,但对计算机来说更简单。