JavaScript 深入学习及常用工具方法整理 ---- 01.浮点数
在JavaScript中是不区分整数值和浮点数值的,其中所有的数字均用浮点数值表示。JavaScript采用IEEE 754标准(有兴趣可以浏览网络规范分类下的IEEE 754标准,需要原文件请在留言处联系我)定义的64位浮点格式表示数字。
目前只针对浮点数的计算。其他的内容会在后续时间进行完善,也希望大家积极提供资源,让你学到的更多。
浮点数直接量可以用以下语法表示:
[digits][.digits][(E|e)[(+|-)]digits]
IEEE754是一种二进制表示法,可以精确的表示(1/2,1/8等等),而常用的十进制分数(1/10, 1/100)则不能精确表示
提供以下工具方法供大家使用。
之前在网上找到过一些资料,使用过程中发现除法有点问题,这里提供两种实现方法:
//说明:这个函数返回较为精确的加法结果。
//floatAdd(arg1,arg2)
//返回值:arg1加上arg2的精确结果
function floatAdd(arg1,arg2){
var r1=0,r2=0;
try{r1=arg1.toString().split(".")[1].length}catch(e){}
try{r2=arg2.toString().split(".")[1].length}catch(e){}
m=Math.pow(10,Math.max(r1,r2))
return (arg1*m+arg2*m)/m
}
//这个函数返回较为精确的减法结果。
//floatSub(arg1,arg2)
//返回值:arg1减上arg2的精确结果
function floatSub(arg1,arg2){
return floatAdd(arg1,-arg2);
}
//这个函数返回较为精确的乘法结果。
//floatMul(arg1,arg2)
//返回值:arg1乘以arg2的精确结果
function floatMul(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)
}
//这个函数返回较为精确的除法结果。
//调用:floatDiv(arg1,arg2)
//返回值:arg1除以arg2的精确结果
function floatDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return floatMul((r1/r2),Math.pow(10,t2-t1)); //调用乘法
}
function floatDiv2(arg1,arg2){
var m=0,s1=arg1.toString(),s2=arg2.toString(),r1,sr1;
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
r1=Number(s1.replace(".",""))/Number(s2.replace(".",""))
try{m+=r1.toString().split(".")[1].length}catch(e){}
return Number(r1.toString().replace(".",""))/Math.pow(10,m)
}
JavaScript 深入学习及常用工具方法整理 ---- 01.浮点数的更多相关文章
- FIle类常用工具方法整理(持续更新)
1.递归遍历一个目录,获取所有文件名(也可以取到绝对路径) public static void traverse(String filePath, List<String> files) ...
- JavaScript常用工具方法
JavaScript常用工具方法 1.日期格式化 2.将日期字符串转换为Date,字符串格式为(yyyy-mm-dd hh:mm:ss) 3.JS获取当天00:00:00时间和23:59:59的时间 ...
- jQuery常用工具方法
前面的话 jQuery提供一些与元素无关的工具方法,不必选中元素,就可以直接使用这些方法.如果理解原生javascript的继承原理,那么就能理解工具方法的实质.它是定义在jQuery构造函数上的方法 ...
- 常用js方法整理common.js
项目中常用js方法整理成了common.js var h = {}; h.get = function (url, data, ok, error) { $.ajax({ url: url, data ...
- 项目中常用js方法整理common.js
抽空把项目中常用js方法整理成了common.js,都是网上搜集而来的,大家一起分享吧. var h = {}; h.get = function (url, data, ok, error) { $ ...
- javascript常用工具类整理(copy)
JavaScript常用工具类 类型 日期 数组 字符串 数字 网络请求 节点 存储 其他 1.类型 isString (o) { //是否字符串 return Object.prototype.to ...
- Apache Commons 常用工具类整理
其实一直都在使用常用工具类,只是从没去整理过,今天空了把一些常用的整理一下吧 怎么使用的一看就明白,另外还有注释,最后的使用pom引入的jar包 public class ApacheCommonsT ...
- Maven基础&&Spring框架阶段常用工具类整理
常用工具类 1.密码加密工具类: package com.itheima.utils; import java.security.MessageDigest; import sun.misc.BASE ...
- Python学习之==>常用字符串方法
1.常用字符串方法 a = '\n 字 符 串 \n\n' b = a.strip() # 默认去掉字符串两边的空格和换行符 c = a.lstrip() # 默认去掉字符串左边的空格和换行符 d = ...
随机推荐
- Adobe Acrobat XI Pro 官方下载及安装破解
Adobe公司推出的PDF 格式是一种全新的电子文档格式.借助 Acrobat ,您几乎可以用便携式文档格式 (Portable Document Format ,简称 PDF) 出版所有的文档. P ...
- Android Studio设置自动编译工程
- 奇怪的问题:android:focusable和android:clickable造成ListView的点击不了
今天花了我很长时间,才解决一个很奇怪的问题,就是在ListView的点击反应不了的问题…… 在ListView中,如果其中一个元素设置为android:focusable="true&quo ...
- CodeForces 135C C. Zero-One
题目 题意: 一个01串,AB两个人轮流删去一个字符,直到只剩两个,A先手.最后剩的两位组成一个二进制数,A要使其最小,B要使其最大. 有一些部分不知道原来是什么,用?表示,求所有的可能里,最后剩下的 ...
- S3C6410嵌入式应用平台构建(五)——linux-3.14.4移植到OK6410-(Nand分区问题)
前一篇文章,我们的Linux能后启动了,只是在识别nand时候,没有获取到时钟源,导致后面的分区没哟进行. 我们从启动的log发现: [06/08-11:25:41:371]s3c24xx-nand ...
- bootstrap栅格系统的div高度怎样定?
不能直接写px,不同设置分辨不同,div宽度始终是满屏的,如果高度指定像素大小,div就不能保证长宽比例恰当了. 解决方法: height:0px;padding-bottom:100%
- 关于json文本数据的一些使用方法
1.对象的存取 如果是对象的存取,可能需要序列化和反序列化对象的属性. NSDictionary params = @{@"hello":@"world"}; ...
- c语言函数---M
书画小说软件 制作更满意的读.更舒心的写.更轻松的公布 最全古典小说网 由本软件公布所得 main()主函数 每一C 程序都必须有一main()函数, 能够依据自己的爱好把它放在程序的某 个地方.有些 ...
- IOS7 position:fixed 定位问题
在IOS7下position:fixed定位会出一些bug. 输入框 focus 状态下 fixed会随之改变.参见该页面详细描述(http://www.cnblogs.com/zhangdaipin ...
- SSM搭配中的web.xml的配置信息
最近一段时间在自己学着搭建SSM框架的项目,其实这个项目自由自己不断尝试,不断失败,才能印象更深刻. 下面就说一下在项目中的web.xml的相关配置信息: <?xml version=" ...