Floating point 根据指数计算的箱浮点数精度

Floating point 根据指数计算的箱浮点数精度,floating-point,Floating Point,什么是存储浮点精度数字的好方法? 像这样,但也许更有效 x = 1; for i = 0,size-1 { // loop over number of bins if (value > x) { ++bin[i]; return; } x *= 0.1; } ++bin[size-1]; // increment last bins 我曾想过直接获取指数,frexp,并使用它。 它值得吗?我会回答这个问题,我想它可能会帮助你: 给定一个数字x,

什么是存储浮点精度数字的好方法? 像这样,但也许更有效

x = 1;
for i = 0,size-1 {  // loop over number of bins
    if (value > x) {
        ++bin[i]; return;
    }
    x *= 0.1;
}
++bin[size-1]; // increment last bins
我曾想过直接获取指数,
frexp
,并使用它。
它值得吗?

我会回答这个问题,我想它可能会帮助你:

给定一个数字x,当用科学记数法写x时,指数是多少。例如,如果x是.007,指数是-3(7x10^-3)


所以,x=a*10^b,对于1,你要求一个很好的方法来存储数字,但你没有描述数字。Tom下面的答案可能是一个很好的解决方案,除非所有数字都在0到10之间。。。也许您可以描述一下为什么要这样做,以帮助理解最佳解决方案是什么。