JavaScript浮点运算的问题 (乘法)

<script type="text/javascript">
    var get_b_val_final=accMul(get_b_val,100)+"%";
    function accMul(arg1,arg2){
              var m=0,s1=arg1.toString(),s2=arg2.toString();
              try{m+=s1.split(".")[1].length}catch(e){}
              try{m+=s2.split(".")[1].length}catch(e){}
              return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
         }
    //arg1=>乘数
    //arg2=>被乘数
    //示例:
    //0.07*100=>7
</script>
时间: 2024-10-31 04:41:38

JavaScript浮点运算的问题 (乘法)的相关文章

javascript 浮点运算

<script type="text/javascript"> // 两个浮点数求和 function accAdd(num1,num2){ var r1,r2,m; try{ r1 = num1.toString().split('.')[1].length; }catch(e){ r1 = 0; } try{ r2=num2.toString().split(".")[1].length; }catch(e){ r2=0; } m=Math.pow(

重写javascript浮点运算

javascript中变量存储时不区分number和float类型,同一按照float存储; javascript使用IEEE 754-2008标准定义的64bit浮点格式存储number,decimal64对应的整形部分长度为10,小树部分长度为16; javascript做小数点运算会出现不精准. //加法运算 var accAdd = function(num1,num2){ var n1,n2,m; try{ n1 = num1.toString().split(".")[1]

用JavaScript,写99乘法表;

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script> //打印99乘法表 for (var i = 1; i <= 9; i++) { for (var j = 1; j <= i; j++) { document.write(j + "×" + i + "

JavaScript浮点运算,小数点精度

math.js // JavaScript Document //数学函数 // 浮点数加法运算 function floatAdd(arg1, arg2) { var r1, r2, m; try{ r1 = arg1.toString().split(".")[1].length; } catch(e) { r1 = 0; } try { r2 = arg2.toString().split(".")[1].length; } catch(e) { r2 = 0

javascript基础之打印乘法表

废话不多说,直接上代码!! 代码如下: for(var i =1; i<=9;i++){ for(var j =1; j<=i;j++){ document.write(i+"*"+j + "="+(i*j) + ' '); } document.write('<br/>'); } 解析:外循环是1到9, 内循环是打印每一层, 例如:打印到第一层的时候:j<=1 成立   -- >>  打印 1 * 1 = 1: –>

JavaScript中Number数字数值浮点运算有误差

JavaScript浮点运算的一个bug. 比如:7*0.8 JavaScript算出来就是:5.6000000000000005 //调用:numberExcept(arg1,arg2) //返回值:arg1除以arg2的精确结果function   numberExcept(arg1,arg2){ var t1=0,t2=0,r1,r2;  try{t1=arg1.toString().split(".")[1].length}catch(e){}  try{t2=arg2.toS

javascript小数相减会出现一长串的小数位数的原因

javascript小数相减会出现一长串的小数位数的原因 <script> var a='38.8'; var b='6.8'; alert(parseFloat(a)-parseFloat(b)); var a=134.22; var b=6; alert(a*b); </script> 以上代码为什么产生一长串小数位出来,虽然比较精确,可没必要呀. 这个和数据结构有关系,整数型自动转换成正型计算,小数型直接转成double型计算.这是在内存中运算的时候必须这样,你该知道计算机只

JS浮点数运算Bug的解决办法【转】

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎么可能多出这么小数点出来. 我Google了一下,发现原来这是JavaScript浮点运算的一个bug. 比如:7*0.8 JavaScript算出来就是:5.6000000000000005 网上找到了一些解决办法,就是重新写了一些浮点运算的函数或直接扩大倍数运算. 下面就把这

js中Number数字相乘后值不对

问题: 37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎么可能多出这么小数点出来. 我Google了一下,发现原来这是JavaScript浮点运算的一个bug. 比如:7*0.8 JavaScript算出来就是:5.6000000000000005解决方法:网上找到了一些解决办法,就是重新写了一些浮点运算的函数. 下面就把这些