js高精度浮点数运算
时间:2022-04-27
本文章向大家介绍js高精度浮点数运算,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
贴代码:
// 自定义高精度浮点数运算
// 对象格式写法
var float_calculator={
/**
* 1.记录两个运算数小数点后的位数
* 2.将其转化为整数类型进行运算
* 3.移动小数点的位置
**/
add:function(arg1,arg2){
var r1,r2,m;
try{
//取小数位长度
r1=arg1.toString().split(".")[1].length;
r2=arg2.toString().split(".")[1].length;
}catch(e){
r1=0;r2=0;
}
m=Math.pow(10,Math.max(r1,r2)); //计算因子
return (arg1*m+arg2*m)/m;
},
minus:function(arg1,arg2){
return this.add(arg1,-arg2);
},
mul:function(arg1,arg2){
var r1,r2,m;
try{
//取小数位长度
r1=arg1.toString().split(".")[1].length;
r2=arg2.toString().split(".")[1].length;
}catch(e){
r1=0;r2=0;
}
m=Math.pow(10,Math.max(r1,r2)); //计算因子
return (arg1*m)*(arg2*m)/(m*m);
},
div:function(arg1,arg2){
if( arg2 == 0 ) return 0;
var t1=0,t2=0,r1,r2;
try{
t1=arg1.toString().split(".")[1].length;
t2=arg2.toString().split(".")[1].length;
}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""));
r2=Number(arg2.toString().replace(".",""));
}
return (r1/r2)*Math.pow(10,t2-t1);
}
};
测试:
alert("高精度加法计算结果: "+float_caculator.add(1.11444,23.45674231)+
"njs计算结果: "+(1.11444+23.45674231));
alert("高精度减法计算结果: "+float_caculator.minus(1.11444,23.45674231)+
"njs计算结果: "+(1.11444-23.45674231));
alert("高精度乘法计算结果: "+float_caculator.mul(1.11444,23.45674231)+
"njs计算结果: "+(1.11444*23.45674231));
alert("高精度除法计算结果: "+float_caculator.div(1.11444,23.45674231)+
"njs计算结果: "+(1.11444/23.45674231));
测试结果如下:
加法
减法
乘法
除法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【java设计模式系列】1. 工厂方法模式(Factory Method)
- 为什么 Java 中 1000==1000 为 false ?
- 【java设计模式系列】2. 单例模式(Singleton)
- 跨域请求的解决方案
- 【排序】快速排序
- 因为BitMap,白白搭进去8台服务器...
- java所有的“锁”大总结,以后面试再也不怕遇到锁了
- 【Java8新特性】03 Stream流式数据处理
- 慎用JSON.stringify
- 【Java8新特性】04 详解Lambda表达式中Predicate Function Consumer Supplier函数式接口
- ubuntu下的进程控制系统————Supervisor
- 如何高效、快速、准确地完成ML任务,这4个AutoML库了解一下
- [译]如何用 Typescript 写一个完整的 Vue 应用程序
- Docker上手系列:Docker入门hello world
- 前端应该知道的 HTTP 知识