numeric_limits::espilon
返回1和下一个double之间的差异。那么,我是否应该理解两个相邻双打之间的距离并不总是相同的,例如在2和下一个双精度之间?
如果是,我可以解释一下吗?
答案 0 :(得分:16)
随着距离零越远,浮点数的“密度”会逐渐减少 。
这是因为IEEE浮点数基本上以科学计数法存储,因此范围优于统一精度。 (如果它是统一的精度,它将是定点的,而不是浮点数。)
换句话说,数字以显着和* 2 指数 的形式存储,因此如果指数变大,则有效数字的微小变化会产生很大的变化。数字(反之亦然)。
所以不,你不能假设2和下一个双重之间的差异与epsilon相同;它不是。
答案 1 :(得分:2)
双打是浮点数。它们由一个符号,一个有效数字和一个指数组成。
指数越大,双重及其后继之间的差异越大。
指数越低,double和它的后继之间的差异越小。