Javascript中浮点数相乘的一个解决方法
Javascript中的浮点数相乘是个很有意思的事情。
浮点数相乘有很多方式,下面是我给出的一个我自己认为不错的解决方案:
代码如下:
function FxF(f1, f2) {
f1 += '';
f2 += '';
var f1Len = f1.split('.')[1].length,
f2Len = f2.split('.')[1].length;
if (f1Len) {
f1 = f1.replace('.', '');
}
if (f2Len) {
f2 = f2.replace('.', '');
}
return f1 * f2 / Math.pow(10, f1Len + f2Len);
};
基本思想
基本的思想就是把浮点数全部变成整数,然后除以等值的10的N阶次方。N为(两个浮点数的后面长度之和)。
相关推荐
-
JavaScript实现算术平方根算法-代码超简单
前几天看见了一个来自雷神之槌的平方根源码,原理多方有介绍,不赘述. 源码是c语言写的,我思考后发现这样的算法在javascript中也是可以完成的. function InvSqrt(x){ var h=0.5*x; var b=new ArrayBuffer(4); var d=new DataView(b,0); d.setFloat32(0,x); var i=d.getInt32(0); i=0x5f375a86-(i>>1); d.setInt32(0,i); var r=d.get
-
js浮点数保留两位小数点示例代码(四舍五入)
复制代码 代码如下: var changeTwoDecimal_f= function (floatvar){ var f_x = parseFloat(floatvar); if (isNaN(f_x)){ return '0.00'; } var f_x = Math.round(f_x*100)/100; var s_x = f_x.toString(); var pos_decimal = s_x.indexO
-
JavaScript检查数字是否为整数或浮点数的方法
本文实例讲述了JavaScript检查数字是否为整数或浮点数的方法.分享给大家供大家参考.具体如下: 检查是否为整数: function isInt(n) { return typeof n === 'number' && n % 1 == 0; } // or ,this support ie3 function isInt(n) { return typeof n === 'number' && parseFloat(n) == parseInt(n, 10) &
-
在JavaScript中使用开平方根的sqrt()方法
这个方法返回一个数的平方根.如果数的值是负的,开方返回NaN. 语法 Math.sqrt( x ) ; 下面是参数的详细信息: x: 一个数字 返回值: 返回一个数字的正弦值. 例子: <html> <head> <title>JavaScript Math sqrt() Method</title> </head> <body> <script type="text/javascript"> var
-
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
本文实例讲述了javascript基于牛顿迭代法实现求浮点数的平方根.分享给大家供大家参考,具体如下: 今天在网上看到一则利用牛顿迭代法求浮点数的平方根的方法,发现很好,比一些语言自带的sqrt方法运行要快,在这里备份一下,以待后用,这里稍微做了些改动. 首先是牛顿迭代法原理: 比如我们要求a的平方根,首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代几次后x的值就已经相当精确了. 如我们要求的数学假设为 a=7, var x=a; ( 7 + 7/7 ) / 2 = 3.642
-
js判断输入是否为正整数、浮点数等数字的函数代码
1.下面列出了一些判读数值类型的正则表达式 复制代码 代码如下: /^\d+$/ //非负整数(正整数 + 0) /^[0-9]*[1-9][0-9]*$/ //正整数 /^((-\d+)|(0+))$/ //非正整数(负整数 + 0) /^-[0-9]*[1-9][0-9]*$/ //负整数 /^-?\d+$/ //整数 /^\d+(\.\d+)?$/ //非负浮点数(正浮点数 + 0) /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0
-
深入理解JavaScript中的浮点数
js只有一种数值型数据类型,不管是整数还是浮点数,js都把归为数字. typeof 17; // "number" typeof 98.6; // "number" typeof –2.1; // "number" js中的所有数字都是双精度浮点数.是由IEEE754标准制定的64位编码数字(这个是什么东东,不知道,回头查一下吧) 那么js是如何表达整数的,双精度浮点数可以完美地表示高达53位精度的整数(没有什么概念,没处理过多大的数据,没用
-
js浮点数精确计算(加、减、乘、除)
复制代码 代码如下: <SPAN style="FONT-SIZE: 18px">//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显.这个函数返回较为精确的加法结果. //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 function accAdd(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".&
-
javascript将浮点数转换成整数的三个方法
Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt 位运算符 Math.floor Math.ceil Description 一.parseInt 1. 实例 parseInt("13nash");//13 parseInt("")// NaN parseInt("0xA") //10(十六进制) parseInt(" 13")//13 parseInt("070&
-
javaScript实现浮点数转十六进制字符
最近一个嵌入式项目中需要WEB功能,因此想到利用HTML+JavaScript实现一些参数配置功能,参数由JavaScript生成十六进制数据,通过POST提交给单片机,然后再直接使用,以充分利用浏览器的计算能力. 由于JavaScript对浮点数的支持很弱,直接使用浮点数转十六进制功能,双不能实现平常在C语言中实现的4字节的存储表示法,通过搜索,并没有找到相关功能代码,在Node.js的Buffer类可以实现此功能,但又没办法使用(单片机存储空间有限),也没办法找到具体是如何实现的(看不太懂)
-
JavaScript浮点数及运算精度调整详解
JavaScript 只有一种数字类型 Number,而且在Javascript中所有的数字都是以IEEE-754标准格式表示的.浮点数的精度问题不是JavaScript特有的,因为有些小数以二进制表示位数是无穷的. 十进制 二进制 0.1 0.0001 1001 1001 1001 - 0.2 0.0011 0011 0011 0011 - 0.3 0.0100 1100 1100 1100 - 0.4
随机推荐
- Go语言获取数组长度的方法
- 微信公众平台开发——群发信息
- Lua判断数据类型的方法
- SqlServer 复制中将大事务分成小事务分发的方法
- 常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
- ASP.NET MVC分页的实现方法
- android GridView多选效果的实例代码
- Python检测生僻字的实现方法
- JSON 数字排序多字段排序介绍
- XXencode 编码,XX编码介绍、XXencode编码转换原理与算法
- 双至强cpu 32g内存服务器 做了阵列1更换一个坏的硬盘后,没做阵列
- 批处理 动态sql
- 同台服务器使用缓存APC效率高于Memcached的演示代码
- Linux下apache日志分析与状态查看方法
- win7下安装 JDK 基本流程
- php获取英文姓名首字母的方法
- C#自动给文章关键字加链接实现代码
- 谈谈PHP语法(5)
- 网络基础学习之二十路由器的配置
- WPF实现画线动画效果