Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript解析浮点差减法_Javascript_Parsefloat - Fatal编程技术网

Javascript解析浮点差减法

Javascript解析浮点差减法,javascript,parsefloat,Javascript,Parsefloat,我要减去两个浮点数,但得到999998.779999999为什么?实际结果为999998.78 您的问题与浮点精度有关。 您可以找到一个解释。您的问题与浮点精度有关。 您可以找到一个解释。您想要的结果只是Javascript所产生内容的一个完整版本。您可以自己对结果进行四舍五入,以获得所需的格式: 货币1=2000001.44美元; 货币2=1000002.66$ Money1=NumberMoney1.替换/[^0-9\.]+/g,; Money2=NumberMoney2.replace/

我要减去两个浮点数,但得到999998.779999999为什么?实际结果为999998.78


您的问题与浮点精度有关。
您可以找到一个解释。

您的问题与浮点精度有关。
您可以找到一个解释。

您想要的结果只是Javascript所产生内容的一个完整版本。您可以自己对结果进行四舍五入,以获得所需的格式:

货币1=2000001.44美元; 货币2=1000002.66$ Money1=NumberMoney1.替换/[^0-9\.]+/g,; Money2=NumberMoney2.replace/[^0-9\.]+/g,; 舍入=Math.roundparseFloatMoney1-parseFloatMoney2*100/100;
控制台。对数圆形 您想要的结果只是Javascript所产生内容的一个完整版本。您可以自己对结果进行四舍五入,以获得所需的格式:

货币1=2000001.44美元; 货币2=1000002.66$ Money1=NumberMoney1.替换/[^0-9\.]+/g,; Money2=NumberMoney2.replace/[^0-9\.]+/g,; 舍入=Math.roundparseFloatMoney1-parseFloatMoney2*100/100;
控制台。对数圆形 结果是由于浮点精度,Python文档对此有很好的解释

结果是由于浮点精度,Python文档对此有很好的解释

您可以使用,因为您仅使用两位数字:

toFixed返回numObj的字符串表示形式,该表示形式不使用指数表示法,并且在小数点后正好有数字。如果需要,数字将四舍五入,如果需要,小数部分将用零填充,以使其具有指定的长度。如果numObj大于1e+21,则此方法只调用Number.prototype.toString并以指数表示法返回字符串

片段:

货币1=2000001.44美元; 货币2=1000002.66$ Money1=NumberMoney1.替换/[^0-9\.]+/g,; Money2=NumberMoney2.replace/[^0-9\.]+/g,; 结果=Money1-Money2.toFixed2; console.logresult 您可以使用,因为您仅使用两位数字:

toFixed返回numObj的字符串表示形式,该表示形式不使用指数表示法,并且在小数点后正好有数字。如果需要,数字将四舍五入,如果需要,小数部分将用零填充,以使其具有指定的长度。如果numObj大于1e+21,则此方法只调用Number.prototype.toString并以指数表示法返回字符串

片段:

货币1=2000001.44美元; 货币2=1000002.66$ Money1=NumberMoney1.替换/[^0-9\.]+/g,; Money2=NumberMoney2.replace/[^0-9\.]+/g,; 结果=Money1-Money2.toFixed2;
console.logresult;这与jQuery无关,只是vanilla JS这与jQuery无关,只是vanilla JS
Money1="2,000,001.44 $";
Money2="1,000,002.66 $"
Money1= Number(Money1.replace(/[^0-9\.]+/g,""));
Money2= Number(Money2.replace(/[^0-9\.]+/g,""));
console.log(parseFloat(Money1)-parseFloat(Money2));