相关疑难解决方法(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中的浮点数精度?

我有以下虚拟测试脚本:

function test() {
  var x = 0.1 * 0.2;
  document.write(x);
}
test();
Run Code Online (Sandbox Code Playgroud)

这将打印结果0.020000000000000004,只应打印0.02(如果您使用计算器).据我所知,这是由于浮点乘法精度的误差.

有没有人有一个很好的解决方案,以便在这种情况下,我得到正确的结果0.02?我知道有类似的功能toFixed或舍入将是另一种可能性,但我想真正打印整个数字没有任何切割和舍入.只是想知道你们其中一个人是否有一些漂亮,优雅的解决方案.

当然,否则我会转到大约10位左右.

javascript floating-point

552
推荐指数
22
解决办法
34万
查看次数

如何检测DOM元素是否部分位于视口之外

我想知道是否有人有一个简单的解决方案.我正在尝试检测HTML元素的任何部分是否发现自己在视口之外.我尝试过使用以下代码:

$.fn.isOnScreen = function(){

    var win = $(window);

    var viewport = {
        top : win.scrollTop(),
        left : win.scrollLeft()
    };
    viewport.right = viewport.left + win.width();
    viewport.bottom = viewport.top + win.height();

    var bounds = this.offset();
    bounds.right = bounds.left + this.outerWidth();
    bounds.bottom = bounds.top + this.outerHeight();
Run Code Online (Sandbox Code Playgroud)

史蒂文带给你的

当整个元素不再可见时,我只能让它工作,但我只需要知道元素的一部分是否在视口之外.

当元素在视口之外时,我会在其上放置一个不同的类,这样它就会向左移动,以便再次查看它.

就像是:

if(elementIsPartiallyOutsideViewport) {
    ele.addClass('move-left');
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

html javascript css jquery

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

JavaScript如何确定格式化浮点值时生成的位数?

在JavaScript中,每个人都知道着名的计算:0.1 + 0.2 = 0.30000000000000004.但是为什么JavaScript打印这个值而不是打印更准确和精确0.300000000000000044408920985006

javascript floating-point precision

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