Javascript中浮点数相乘的一个解决方法_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为(两个浮点数的后面长度之和)。

时间: 2024-10-12 04:33:19

Javascript中浮点数相乘的一个解决方法_javascript技巧的相关文章

关于验证码在IE中不刷新的快速解决方法_javascript技巧

今天在做验证码的时候发现在IE中,验证码不会刷新,而谷歌等其他浏览器没有问题,所以我想到应该是缓存问题,因为IE默认的设置是如果访问地址没变化就不会去获取而是加载缓存中的内容 所以解决方案就是在验证码的切换地址后面加一个随机的参数 例如: <script> //换验证码 function changeimg(){ /* math.random范围是0-1 *999变成0-999 +3000 就是3000-3999 */ var time=Math.round(Math.random()*999

js中style.display=&quot;&quot;无效的解决方法_javascript技巧

本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多的操作,但如果我们style.display=""可能导致没有效果. 看下面一段代码: 复制代码 代码如下: <style>  #name  {      display:none;  } </style> </head> <body> &l

javascript中的后退和刷新实现方法_javascript技巧

<input type=button value=刷新 onclick="window.location.reload()"> <input type=button value=前进 onclick="window.history.Go(1)"> <input type=button value=后退 onclick="window.history.go(-1)"> <input type=button

javascript小数精度丢失的完美解决方法_javascript技巧

原因:js按照2进制来处理小数的加减乘除,在arg1的基础上 将arg2的精度进行扩展或逆扩展匹配,所以会出现如下情况. javascript(js)的小数点加减乘除问题,是一个js的bug如0.3*1 = 0.2999999999等,下面列出可以完美求出相应精度的四种js算法 function accDiv(arg1,arg2){ var t1=0,t2=0,r1,r2; try{t1=arg1.toString().split(".")[1].length}catch(e){} t

JavaScript中的类与实例实现方法_javascript技巧

本文实例讲述了JavaScript中的类与实例实现方法.分享给大家供大家参考.具体如下: JavaScript 中没有父类, 子类的概念, 也没有class 和 instance 的概念, 全靠 prototype chain来实现继承. 当查找一个对象的属性时, JavaScript 会向上遍历 prototype chain, 直到找到对应的属性为止. 有几种方法, 可以使得 JavaScript 模拟出 class 和 instance 的概念. 1. 直接使用构造函数来创建对象, 在构造

网页自动刷新,不产生嗒嗒声的一个解决方法_javascript技巧

网页自动刷新,不产生嗒嗒声的一个解决方法 不用XMLHTTP的.其实也很怪,不知微软是怎么处理的,我把定时刷新换个写法它就不出声了.现帖出来与大家共享.  刷新页面不要用那个meta标签中的refresh属性.用这个一定用声音的.大家只要加上这么一句话就可以了. .... 〈body onload="setTimeout('this.location.reload();',6000);"〉 ... 这样页面6秒一刷,但又没声音. 不用XMLHTTP的.其实也很怪,不知微软是怎么处理的,

详解JavaScript中的4种类型识别方法_javascript技巧

具体内容如下: 1.typeof [输出]首字母小写的字符串形式 [功能] [a]可以识别标准类型(将Null识别为object) [b]不能识别具体的对象类型(Function除外) [实例] console.log(typeof "jerry");//"string" console.log(typeof 12);//"number" console.log(typeof true);//"boolean" console

javascript中函数作为参数调用的方法_javascript技巧

本文实例讲述了javascript中函数作为参数调用的方法.分享给大家供大家参考.具体分析如下: 先来看示例: function Map(){ var obj = {}; this.put = function(key, value){ obj[key] = value; } this.eachMap = function(fn){ for(var attr in obj){ fn(attr, obj[attr]); } } } var m = new Map(); m.put('01', 'a

javascript中对变量类型的判断方法_javascript技巧

在JavaScript中,有5种基本数据类型和1种复杂数据类型,基本数据类型有:Undefined, Null, Boolean, Number和String:复杂数据类型是Object,Object中还细分了很多具体的类型,比如:Array, Function, Date等等.今天我们就来探讨一下,使用什么方法判断一个出一个变量的类型. 在讲解各种方法之前,我们首先定义出几个测试变量,看看后面的方法究竟能把变量的类型解析成什么样子,以下几个变量差不多包含了我们在实际编码中常用的类型. var