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].length;
}catch(e){
n1 = 0;
}
try{
n2 = num2.toString().split(".")[1].length;
}catch(e){
n2 = 0;
}
m = Math.pow(10,Math.max(n1,n2));
return (num1*m + num2*m)/m;
} //减法运算
var suntr = function(num1,num2){
var n1,n2,m,n;
try{
n1 = num1.toString().split(".")[1].length;
}catch(e){
n1 = 0;
}
try{
n2 = num2.toString().split(".")[1].length;
}catch(e){
n2 = 0;
}
m = Math.pow(10,Math.max(n1,n2));
n = (n1 > n2) ? n1 : n2;
return ((num1*m - num2*m)/m).toFixed(n);
} //乘法运算
var accMul = function(num1,num2){
var m = 0,n1,n2,
s1 = num1.toString(),
s2 = num2.toString();
try{
m += s1.split(".")[1].length;
}catch(e){ }
try{
m += s2.split(".")[1].length;
}catch(e){ }
n1 = Number(s1.replace(".",""));
n2 = Number(s2.replace(".",""));
return n1 * n2 / Math.pow(10,m);
} //除法运算
var accDivi = function(num1,num2){
var s1 = 0,s2 = 0,n1,n2;
try{
s1 = num1.toString().split(".")[1].length;
}catch(e){ }
try{
s2 = num2.toString().split(".")[1].length;
}catch(e){ }
with(Math){
n1 = Number(num1.toString().replace(".",""));
n2 = Number(num2.toString().replace(".",""));
return (n1/n2)*Math.pow(10,s2-s1);
}
}

重写javascript浮点运算的更多相关文章

  1. JavaScript浮点运算,小数点精度

    math.js JavaScript浮点运算,小数点精度 // JavaScript Document //数学函数 // 浮点数加法运算 function floatAdd(arg1, arg2) ...

  2. Javascript 浮点运算问题分析与解决

    分析 JavaScript 只有一种数字类型 Number ,而且在Javascript中所有的数字都是以IEEE-754标准格式表示的. 浮点数的精度问题不是JavaScript特有的,因为有些小数 ...

  3. javascript 浮点运算

    <script type="text/javascript"> // 两个浮点数求和 function accAdd(num1,num2){ var r1,r2,m; ...

  4. WebView 中重写javascript 常用函数

    常规函数   javascript 常规函数包括以下3个函数:  (1)alert函数:显示一个警告对话框,包括一个OK按钮. 对应:http://www.dreamdu.com/javascript ...

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

    <script type="text/javascript"> var get_b_val_final=accMul(get_b_val,100)+"%&qu ...

  6. javascript函数值的重写

    原文:javascript函数值的重写 javascript函数值的重写 定义了一个函数,需要重写这个函数并使用原先的函数值.做法是: 1.定义一个变量让原先函数的值指向它,把原先函数的指向一个新的函 ...

  7. 在JavaScript中重写jQuery对象的方法

    jQuery是一个很好的类库,它给我们解决了很多的客户端编程,任何东西都不是万能的,当它不能满足我们的需求时我们需要对它进行重写,同时也不要影响其原有的功能或者修改其原有的功能:我现在的web应用程序 ...

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

    JavaScript浮点运算的一个bug. 比如:7*0.8 JavaScript算出来就是:5.6000000000000005 //调用:numberExcept(arg1,arg2) //返回值 ...

  9. JavaScript中有关数字的精确计算

    问题这样的: 37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) ,我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会 ...

随机推荐

  1. think in python 11 字典

    字典 字典类似于列表,但更加通用 键值对 ,字典是 键与值之间的映射,每个键都映射到一个值上 dict可以创建一个不包含任何项的字典 eng2sp = dict() print eng2sp 还可以给 ...

  2. sqlyog绿色破解版

    http://pan.baidu.com/s/1mghyUrY 下载地址

  3. windows下如何使用ssh远程登录Linux

    1.ssh的安装 sudo apt-get install ssh 或者在Linux情况下,自带有ssh,从第二步开始   2.生成密钥 ssh-keygen 中间过程会提示你存放密钥的地方Enter ...

  4. Apache Tiles 2.x 应用指南(转)

    转自:http://jaymsimusic.iteye.com/blog/1138906 Apache Tiles 2.x 应用指南 博客分类: Apache Tiles   Jakarta Tile ...

  5. unity3d在Android端读取修改Json数据

    首先我们需要下载一个文件 LitJson.dll(下载链接 ps: 是用自己的百度云盘下载的如果链接过时,请留言或自行下载, 密码: 5foa) 另外,由于我们要发布到安卓手机上,所以需要配置Jar和 ...

  6. 音量强度转分贝db

    //LPDIRECTSOUNDBUFFER如何设置声音大小?> //取值范围是0 ~ -10000, 0最大,-10000最小,单位是分贝 //0-100音量转换成分贝 double decib ...

  7. 关于height:100%两三事

    对于CSS的height:100%,顾名思义,该元素的高度自动填充为其父元素的高度.但该样式有时候会不起作用,Mark down 一下.>< 首先,看一下以下CSS代码: div { he ...

  8. javascript实现当前页导航激活

    html <ul id=”nav”> <li><a href=”http://www.daqianduan.com/”>首页</a></li> ...

  9. PDO的事物处理机制

    Mysql的事务处理: 1.MySQL目前只有InnoDB 和BDB两个数据表类型才支持事务. 2.在默认条件下,MySQL是以自动提交(autocommit)模式运行的,这就意味着所执行的每一个语句 ...

  10. list 、set 、map 粗浅性能对比分析

    list .set .map 粗浅性能对比分析   不知道有多少同学和我一样,工作五年了还没有仔细看过list.set的源码,一直停留在老师教导的:"LinkedList插入性能比Array ...