相关疑难解决方法(0)

如何处理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万
查看次数

-webkit-box-shadow使用javascript无法正常更改

我有以下代码:

var oneHeight = Math.ceil(0.012*window.innerHeight).toString()+"px";
var usboxshadow="0px "+oneHeight+" 0px rgba(0,140,255,1), 0px "+oneHeight+" 25px rgba(0,0,0,.7)";
console.log(usboxshadow);
$(".unselected").css("-webkit-box-shadow",usboxshadow);
Run Code Online (Sandbox Code Playgroud)

当我将usboxshadow输出到控制台时,我得到了我应该得到的:

0px 20px 0px rgba(0,140,255,1), 0px 20px 25px rgba(0,0,0,.7) 
Run Code Online (Sandbox Code Playgroud)

(-webkit-box-shadow属性)
但是,当我用Jquery.css()检索属性时,

console.log($(".unselected").css("-webkit-box-shadow"));
Run Code Online (Sandbox Code Playgroud)

我得到了一个非常不同的结果:

rgb(0, 140, 255) 0px 20px 0px 0px, rgba(0, 0, 0, 0.701961) 0px 20px 25px 0px 
Run Code Online (Sandbox Code Playgroud)

首先,每个参数中额外的0px来自何处?

第二,为什么rgba alpha(不透明度)为0.701961,何时应为0.7?

请告诉我我做错了什么.

编辑:

运行代码后,不显示未选择类的元素的box-shadow .

html javascript css jquery css3

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

限制JavaScript中的Float精度

我正在使用JavaScript中的函数.我取两个变量x和y.

我需要划分两个变量并在屏幕上显示结果:

x=9; y=110;
x/y;
Run Code Online (Sandbox Code Playgroud)

然后我得到的结果如下:

0.08181818181818181

我需要使用BigDecimal.js我在另一篇文章中找到的东西.

我希望结果显示为:

0.081

javascript floating-point fixed-point

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

在Jquery中创建带小数的循环

我需要创建一个可以用decimal进行迭代的循环,如下所示:

$("#btn").click(function(){
    for(i =parseFloat(0.00); i <= 2.00;i=parseFloat(i+0.05)){
        $("#paragraph").append(i+"<br/>");
    }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="button" id="btn" value="Create decimals" />
<p id="paragraph"></p>
Run Code Online (Sandbox Code Playgroud)

但结果并不像预期的那样,我需要这样的东西:

  • 0.02
  • 0.04
  • 0.06
  • ....
  • 1.04
  • ....
  • 1.99
  • ....
  • 2

谢谢你的帮助.

javascript jquery

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

我应该在 GraphQL 中使用整数来表示货币价值吗?

我知道在编程时我应该使用整数来表示“货币价值”。我知道这是因为0.1 + 0.2 != 0.3问题。但我不太了解这个问题,无法知道这是否也是数据格式(如 JSON)中的问题。

在我的具体情况下:我应该定义

type Money {
    amount: Float!
    # ...
}

Run Code Online (Sandbox Code Playgroud)

或者

type Money {
    amount: Int!
    # ...
}

Run Code Online (Sandbox Code Playgroud)

在 GraphQL 中?

json dataformat graphql

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