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. UVA 10570 Meeting with Aliens

    题意: N个外星人围成一桌坐下,有序的排列指N在N-1与N+1中间,现在给出一个序列,问至少交换几次可以得到有序的序列. 分析: 复制一遍输入序列,放在原序列之后.相当于环.通过枚举,可以把最小交换次 ...

  2. UINavigationController和UITabBarController合用

    一.创建一个 Tabbed Application.默认创建的是带有两个Tab的工程. 二.在AppDelegate.h里面添加 @property (strong, nonatomic) UINav ...

  3. 蜗牛爱课 -- iOS 设置UIButton的字体的大小、显示位置、大小

    /设置按钮上的自体的大小 //[btn setFont: [UIFont systemFontSize: 14.0]];    //这种可以用来设置字体的大小,但是可能会在将来的SDK版本中去除改方法 ...

  4. [Linked List]Remove Nth Node From End of List

    Total Accepted: 84303 Total Submissions: 302714 Difficulty: Easy Given a linked list, remove the nth ...

  5. 轻松解决ubuntu系统引导问题

    什么是ppa PPA,表示 Personal Package Archives,也就是个人软件包集. 有很多软件因为种种原因,不能进入官方的 Ubuntu 软件仓库. 为了方便 Ubuntu 用户使用 ...

  6. C语言学习的经典书籍--转载

    推荐前言: 原文出处:http://book.douban.com/doulist/338101/ 和其他语言相比(例如C++),C语言是一门比较“小”的语言,可以在较短的时间内入门.但是由于C的很强 ...

  7. 用Struts2标签实现Map的迭代

    最近在做一个论坛,论坛通常分为几个主版块,每一个主版块下面又有几个子版块. 想不出更好的展现方式,最终采用了如下的方法来实现: 用一个Map,HashMap或者Treemap承载之.一个子版块名字对应 ...

  8. php中__autoload()方法详解

    [导读] PHP在魔术函数__autoload()方法出现以前,如果你要在一个程序文件中实例化100个对象,那么你必须用include或者require包含进来100个类文件,或者你把这100个类定义 ...

  9. linux判断日期是否合法

    #include <time.h> #include <stdio.h> typedef enum { , } bool; bool check_date(int year, ...

  10. SpringDataRedis事务处理

    public Long leftPush(V value) { return this.ops.leftPush(this.getKey(), value); } public Long leftPu ...