/**
* 加法运算,避免数据相加小数点后产生多位数和计算精度损失。
*
* @param num1加数1 | num2加数2
*/
function numAdd(num1, num2) {
var baseNum, baseNum1, baseNum2;
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
return (num1 * baseNum + num2 * baseNum) / baseNum;
};
/**
* 加法运算,避免数据相减小数点后产生多位数和计算精度损失。
*
* @param num1被减数 | num2减数
*/
function numSub(num1, num2) {
var baseNum, baseNum1, baseNum2;
var precision;// 精度
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2;
return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision);
};
/**
* 乘法运算,避免数据相乘小数点后产生多位数和计算精度损失。
*
* @param num1被乘数 | num2乘数
*/
function numMulti(num1, num2) {
var baseNum = 0;
try {
baseNum += num1.toString().split(".")[1].length;
} catch (e) {
}
try {
baseNum += num2.toString().split(".")[1].length;
} catch (e) {
}
return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum);
};
/**
* 除法运算,避免数据相除小数点后产生多位数和计算精度损失。
*
* @param num1被除数 | num2除数
*/
function numDiv(num1, num2) {
var baseNum1 = 0, baseNum2 = 0;
var baseNum3, baseNum4;
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
with (Math) {
baseNum3 = Number(num1.toString().replace(".", ""));
baseNum4 = Number(num2.toString().replace(".", ""));
return (baseNum3 / baseNum4) * pow(10, baseNum2 - baseNum1);
}
};

最新文章

  1. vs2013 遇到的web性能记录器无法使用问题
  2. 安卓手机开机开启指定Activity
  3. HT图形组件设计之道(三)
  4. PHP基础18:require和include
  5. PHP接口类interface的正确使用方法
  6. Button控件
  7. RIME输入法
  8. c/c++的函数参数压栈顺序
  9. 访问 Tomcat支配项目去除项目名和端口号通过IP地址(或域名)访问
  10. ehcache与redis的比较与应用场景分析(转)
  11. [Swift]LeetCode647. 回文子串 | Palindromic Substrings
  12. Django登录与注销
  13. 从零开始学习Java多线程(二)
  14. MySQL【数值处理函数】的使用方法
  15. 如何实现从Java入门到服务端项目开发的进阶?
  16. linux路由
  17. DWM1000 定位数据收发以及定位算法
  18. 440P 测试三星ssd840pro 512g
  19. windows下使用vscode编写运行以及调试Python
  20. 使用WebViewJavascriptBridge与UIWebView交互

热门文章

  1. iOS实现OAuth2.0中刷新access token并重新请求数据操作
  2. 28 Corn表达式详解 (转自http://blog.csdn.net/claram/article/details/51785193)
  3. [转]javascript函数定义表达式和函数声明的区别
  4. Android的消息处理机制(Looper,Handler,Message)(转)
  5. phpcms v9 二次开发 - 自己添加源文件
  6. Python自动化运维之2、运算符与数据类型
  7. template of class
  8. 如何用PowerPoint制作闪烁的星星
  9. 信息安全实验一:buffer-overflow
  10. 设置tableWidget->verticalScrollBar()的属性