相关疑难解决方法(0)

浮点不准确的例子

你如何向仍然认为计算机是无限智能和准确的新鲜程序员和外行人解释浮点不准确?
你有一个最喜欢的例子或轶事似乎比一个精确但干燥的解释更好地理解这个想法吗?
这是如何在计算机科学课程中教授的?

floating-point floating-accuracy

29
推荐指数
3
解决办法
10万
查看次数

为什么这个浮点数的值会改变它的设置?

为什么这个C程序输出"错误"?

#include<stdio.h>

void main()
{
    float f = 12345.054321;

    printf("%f", f);

    getch();
}
Run Code Online (Sandbox Code Playgroud)

输出:

12345.054688
Run Code Online (Sandbox Code Playgroud)

但输出应该是,12345.054321.

我在VS2008中使用VC++.

c floating-point floating-accuracy

8
推荐指数
1
解决办法
2021
查看次数

为什么10000000000000.126.toString()1000000000000.127(我能做些什么来阻止它)?

为什么是10000000000000.126.toString()1000000000000.127而100000000000.126.toString()不是?

我认为它必须与Js中的Number的最大值有关(根据这个SO问题),但这与浮点运算有何关系?

我问,因为我写了这个函数来使用数千个分隔符格式化数字,并希望防止这种情况.

function th(n,sep) {
    sep = sep || '.';
    var dec = n.toString().split(/[,.]/),
        nArr = dec[0].split(''),
        isDot = /\./.test(sep);
    return function tt(n) {
              return n.length > 3 ?
               tt(n.slice(0,n.length-3)).concat(n.slice(n.length-3).join('')) :
               [n.join('')]
            ;
        }(nArr)
        .join(sep)
        + (dec[1] ? (isDot?',':'.') + dec[1] : '');
}
sep1000(10000000000000.126); //=> 10.000.000.000.000,127
sep1000(1000000000000.126); //=> 1.000.000.000.000,126
Run Code Online (Sandbox Code Playgroud)

javascript floating-point numbers

1
推荐指数
1
解决办法
185
查看次数