我正在将 64 位数字转换为 32 位数字,在进行转换时,我想确保我的数字在转换中只会变大而不是变小。我知道数字的舍入误差会随着数字变大而变大,但我想扩大由数字的舍入误差转换的数字,以确保它不会被四舍五入。
这是我目前估计舍入误差的方法(在 javascript 中),它有效,但我想知道是否有更好的方法:
const error = x * Math.pow( 2, -24 );
为了更详细地了解我的用例,我正在创建一个边界体积层次结构并将包含对象的边界存储为框中心和半宽(使用 64 位计算计算)。当将这些数字转换为 32 位以存储在缓冲区中时,它们会被四舍五入,这可能导致边界框变小或“移位”并且不完全包含预期内容。我正在通过中心和半范围值的估计舍入误差来扩展半范围以适应。
那么有没有办法在某个数字范围内准确地获得最大浮点舍入误差?我估算上述数字的方式有问题吗?
谢谢!