相关疑难解决方法(0)

javascript分区给出了错误的答案?

警报(5.30/0.1);

这给了52.99999999999999但应该是53.任何人都可以说出如何以及为什么?

我想找到一个数字可以被给定的数字整除.请注意,其中一个数字可能是浮点数.

javascript

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

用小数javascript划分数字

如何将数字(金钱)分成x数字,数字可以是一个或两个小数或没有它

比如1000100.2112.34
我希望能够以这个数字都一样分成X部分人,但是,如果它不是奇数额外数到最后一个.

例如

3856 / 3
1285.33
1285.33
1285.34
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

有一个公式在服务器端和客户端有不同的结果吗?

我已经编写了一个函数来计算我网站上的付款费用,但它在javascript和php中给出了不同的结果.您应该将此代码复制到htm/html文件.

bug.php中的代码:

<table style="background-color:#ccc; width:600px; font-family:Tahoma">
<tbody><tr style="background-color:#00CCFF"><td>original number</td><td>phpToFixed()</td><td>jsToFixed()</td><td>phpCalc</td><td>jsCalc</td></tr>
<script>
function jsToFixed(i) {
return(Math.floor(i * 100) / 100);
}
function jsCalc(ob){
    val=jsToFixed(ob);
    if(val>0&&val!=''){
    result = jsToFixed(0.95*ob);
    }else{

    result = 0;
    }
    if(result==val&&result!=0){
    result-=0.01;
    }
return result;
}
<?php
function phpToFixed($amount){
$inp= floor($amount * 100) / 100;
return $inp;
}
function phpCalc($amount){
$inp= phpToFixed($amount);

    if($inp>0&&$inp!=''){
$result = phpToFixed($amount*0.95);

    }else{
$result = 0;
    }
if($result==$inp&&$result!=0){
$result-=0.01;
}
return $result;
}
for($i=0;$i<1;$i+=0.009){
?>
document.write("<tr><td class='org'><? echo $i; ?> </td><td class='fix'> <? echo phpToFixed($i); …
Run Code Online (Sandbox Code Playgroud)

javascript php

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

Jquery - 将两个带小数点的数字相加给出错误的总数

我在文本框上的更改事件上有以下 Jquery 函数

  $('input:text[id$=txtText1]').change(GetTotal);
Run Code Online (Sandbox Code Playgroud)

这会调用 GetTotal 函数

 function GetTotal() {

            var value1 = txtText1.val();
            var value2 = txtText2.val();
                 var sum = add(value1, value2)

                 $('input:text[id$=txtSubTotals]').val(sum);
}
Run Code Online (Sandbox Code Playgroud)

这是添加功能

 function add() {
            var sum = 0;
            for (var i = 0, j = arguments.length; i < j; i++) {
                if (IsNumeric(arguments[i])) {
                    sum += parseFloat(arguments[i]);
                }
            }
            return sum;
        }
Run Code Online (Sandbox Code Playgroud)

在文本框 1 中,该值为 1.45,在文本框 2 中,该值为 1.44,而不是 2.89。我得到以下值 2.8899999999999997

jquery

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

Javascript:精​​确奇怪的行为

可能重复:
JavaScript的数学是否被破坏?

假设,

var x = .6 - .5;

var y = 10.2 – 10.1;

var z = .2  -  .1;
Run Code Online (Sandbox Code Playgroud)

比较结果

x == y;     // false

x == .1;    // false

y == .1;    // false
Run Code Online (Sandbox Code Playgroud)

z == .1;    // true
Run Code Online (Sandbox Code Playgroud)

为什么Javascript会显示这样的行为?

javascript jquery

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

在 JavaScript 中:1.1 - 1 = 0.10000000000000009

什么样的错误?我该如何解决?

1.1 - 1 = 0.10000000000000009

1.0000001+1 = 2.0000001000000003

javascript floating-point-precision

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

划分两个浮点数的安全方法?

划分两个IEEE 754浮点数的最安全的方法是什么?

就我而言,语言是JavaScript,但我想这并不重要.目标是避免正常的浮点陷阱.

我已经读过,人们可以使用"修正系数"(cf)(例如10提升到某个数字,例如10 ^ 10),如下所示:

(a * cf) / (b * cf)
Run Code Online (Sandbox Code Playgroud)

但我不确定这会对分裂产生影响吗?

顺便说一下,我已经看过Stack Overflow上的其他浮点帖子了,我还没有找到关于如何划分两个浮点数的单一帖子.如果答案是在添加和分割时解决浮点问题的解决方案之间没有区别,那么请回答一下.

编辑:

我在评论中已经被问到我所指的哪些陷阱,所以我想我也会在这里为那些没有阅读评论的人添加快速说明:

当加0.1和0.2时,你会得到0.3,但是使用浮点运算得到0.30000000000000004(至少在JavaScript中).这只是常见陷阱的一个例子.

上面的问题在Stack Overflow上讨论了很多次,但我不知道分割时会发生什么,如果它与添加或乘法时发现的陷阱不同.可能没有风险,在这种情况下,这将是一个非常好的答案.

javascript math floating-point ieee-754 node.js

0
推荐指数
2
解决办法
903
查看次数

toFixed 函数未按预期提供输出

为什么toFixed()在以下情况下不能按预期工作?解决办法是什么?

代码:

var num = 5.56789;
var n = num.toFixed(16);
console.log(num)
console.log(n)
Run Code Online (Sandbox Code Playgroud)

n 的期望值: 5.5678900000000000

n 的实际值: 5.5678900000000002

笔记:

  1. 我已经完成了所有相关的堆栈溢出问题。
  2. 我知道它没有给出预期的结果,因为浮点数不能用二进制完美表示。
  3. 我期待的是一个库函数,它实际上承认上述内容并生成预期的输出。

javascript rounding tofixed

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

在javascript计算中32.48*10 = 324.79999999999995

var quantity = $(this).find('td:eq(2) input').val()*1;
var unitprice = $(this).find('td:eq(3) input').val()*1;
var totaltax = 0;
$(this).find('td:eq(4) input[name^=taxamount]').each(function(){
    totaltax = (totaltax*1)+($(this).val()*1);
});
var subtotal = (unitprice+totaltax);
alert(subtotal+' is unit subtotal, to mulitply by '+quantity);
var total = subtotal*quantity;
$(this).find('td:last').html('$'+total);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,基于我的DOM,结果都是整数(特别是因为我确保我将*1修饰符应用于值以确保它们是数字,而不是字符串).

在这种情况下,这些是在上述代码的前7行内返回的值(并通过警报命令验证)数量:10 unitprice:29 totaltax:3.48 subtotal = 32.48

当我乘以总变量的小计*数量时,总回报:总计:324.79999999999995

所以最后,我得到了td:last满$ 324.79999999999995而不是$ 324.80这更正确.

奇怪,我知道.我在不同的点尝试了各种警报,以确保没有错误等.

javascript jquery dom addition

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

如何将字符串值(例如:double值)转换为javascript中的百分比?

可能重复:
JavaScript浮点数问题的优雅解决方法

我想知道如何将以下值转换为javascript中的百分比?

首次预期产出

 Input Value   :  0.03222772304422584
 Expected Value:  0.03  
Run Code Online (Sandbox Code Playgroud)

第二个预期产出

 Input Value   :  0.03222772304422584
 Expected Value:  .03  
Run Code Online (Sandbox Code Playgroud)

提前致谢,

本Kathir

javascript

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