相关疑难解决方法(0)

浮点数学是否破碎?

请考虑以下代码:

0.1 + 0.2 == 0.3  ->  false
Run Code Online (Sandbox Code Playgroud)
0.1 + 0.2         ->  0.30000000000000004
Run Code Online (Sandbox Code Playgroud)

为什么会出现这些不准确之处?

language-agnostic math floating-point floating-accuracy

2798
推荐指数
28
解决办法
28万
查看次数

JavaScript处理大数字(BigNum)的标准解决方案是什么?

是否有一个用于JavaScript或内置的bignum库,我可以包括

<script type="text/javascript" src="the_bignum_library.js"></script>
Run Code Online (Sandbox Code Playgroud)

我认为我的用户更愿意在网页中输入数字并等待7秒才能获得结果,而不是下载可执行文件并点击一堆"此可执行文件可能会损害您的计算机"警告屏幕进行安装.

我考虑过自己的http://github.com/silentmatt/javascript-bigintegerhttp://www.mainebrook.com/john/fun/euler.html.或者你会建议从JavaScript调用Java bignum库,如apfloat?

javascript floating-accuracy bignum

50
推荐指数
1
解决办法
4万
查看次数

如何将二进制分数转换为十进制

Javascript具有parseInt()可以帮助将二进制形式的整数转换为其十进制等效值的函数:

parseInt("101", 2) // 5
Run Code Online (Sandbox Code Playgroud)

但是,我需要将二进制分数转换为其十进制等效值,如:

0.101 = 0.625
Run Code Online (Sandbox Code Playgroud)

我可以编写自己的函数来计算结果,如下所示:

1 * Math.pow(2, -1) + 0*Math.pow(2, -2) + 1*Math.pow(2, -3) // 0.625
Run Code Online (Sandbox Code Playgroud)

但我想知道是否已有任何标准.

javascript binary

22
推荐指数
3
解决办法
1725
查看次数

Javascript + =等价?

我的代码是一个简单的函数,它检查按下了哪个单选按钮,并将该单选按钮的值添加到我的var input = 0;.但是,我知道我做错了,因为它有效,但输出错误.当其中一个if陈述为真时,而不是输入(0)现在等于它自己加上新的值getElementById("small").value,它打印出来010而不是现在10.

我知道在Java中有一个类似的约定,input += getElementById("small").value;但这似乎不起作用.因此,正如您在下面的示例中所看到的,我尝试了替代input = input + /*code*/;但仍然没有运气.

我是JavaScript的新手,但对Java非常熟悉.我想我在这里只是使用了错误的语法,但我所有的Google搜索都是破产.

function calculate()
{
    var input = 0;
    if (document.getElementById("small").checked) 
    {
        input = input + document.getElementById("small").value;
    }
    else if (document.getElementById("medium").checked)
    {
        input = input + document.getElementById("medium").value;
    }
    else if (document.getElementById("large").checked)
    {
        input = input + document.getElementById("large").value;
    }
    else
    {
        alert("failed");
    }

    document.getElementById("outar").innerHTML = input;
}
Run Code Online (Sandbox Code Playgroud)

html javascript syntax

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

如何用JS只获取长浮点精度数的整数部分?

我知道有

  • Math.floor
  • parseInt

但关于这种情况:

Math.floor(1.99999999999999999999999999)
Run Code Online (Sandbox Code Playgroud)

返回2,我怎么才能得到它的整数部分,等于1?

javascript floating-point-precision

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