//四舍五入
/*JS浮点计算BUG屏蔽终极解决办法*/
/*
第一部分
重写Number函数,增加3个函数,加、乘、除
*/
Number.prototype.add = function(arg) {
return accAdd(arg, this);
}
//接口
//相除
Number.prototype.div = function(arg) {
return accDiv(this, arg);
}
//乘法
//使用方法 5.mul(4)=20
Number.prototype.mul = function(arg) {
return accMul(arg, this);
}
//============================================
/*
第二部分
加、乘、除具体函数,
*/
//相除
function accDiv(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) { }
with (Math) {
r1 = Number(arg1.toString().replace(".", ""))
r2 = Number(arg2.toString().replace(".", ""))
return (r1 / r2) * pow(10, t2 - t1);
}
}
//相乘
function accMul(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)
}
//相加
function accAdd(arg1, arg2) {
var r1, r2, m, c;
try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
c = Math.abs(r1 - r2);
m = Math.pow(10, Math.max(r1, r2))
if (c > 0) {
var cm = Math.pow(10, c);
if (r1 > r2) {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", "")) * cm;
}
else {
arg1 = Number(arg1.toString().replace(".", "")) * cm;
arg2 = Number(arg2.toString().replace(".", ""));
}
}
else {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", ""));
}
return (arg1 + arg2) / m
}
分享到:
相关推荐
js中浮点型运算BUG的解决方法说明.docx
js中浮点类型数据的计算 7.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位... 网上找到了一些解决办法,就是重新写了一些浮点运算的函数。 下面就把这些方法摘录下来,以供遇到同样问题的朋友参考:
底层硬件如何实现浮点运算,详细解释fpga实现浮点运算
浮点运算方法和浮点运算器。主要介绍浮点运算的方法和流程以及浮点运算器。
曾经项目用到过的,之前在网上找到此代码,但在特定条件下除法和加法运算依然会出现BUG个人对此稍作优化 代码如下://除法函数,用来得到精确的除法结果//说明:javascript的除法结果会有误差,在两个浮点数相除的...
stm32f407 FPU 浮点运算mdk源代码
stm32f1 M3 浮点快速运算库,采用汇编指令编写的运算库,浮点运算速度,比默认的库速度更快。 可以直接包含文件中使用。
stc15系列单片机浮点运算性能测试结果是用数码管显示的,自己可以改
由于javascript的浮点运算是不精确的(对于大多数编程语言都是这样),此程序使用整数来代替浮点数进行运算,最后再转化为浮点数,可以实现对设置范围内(运算范围在程序中为自定义变量range)的浮点运算实现精度...
可是由于积分已经接近0,没办法下载了,所以还是决定把它发出来,赚几个积分。 此函数是我自己写的,虽然在网上可以搜到很多,不过我找到的都是在算法中存在基本的浮点数的运算,导致结果仍然是错误的。由于刚刚学写...
TI官方浮点运算库,支持各种算法,效果比自己用C编写的效果要好,运算速度快,很实用。
Faster rcnn test浮点运算次数,包括:卷积实现过程,Faster rcnn总体结构和参数
将此文件解压后放置到keil\lib目录下,可以解决keil不能进行浮点运算的问题。
今天小编就为大家分享一篇浅谈linux kernel对于浮点运算的支持,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
计算机组成原理:3.5 浮点运算器.ppt
这是在stm32中实现fft计算等浮点运算必须要先做的设置。我之前给的浮点运算例程,在此设置下,自己亲测是可用的,有问题的同学可以留言
浮点 DSP 运算效率不高 问题: 该问题由某客户提出,发生在 STM32F407IGT6 器件上。据其工程师讲述:由于在其产品中,需要使用STM32进行大量的浮点数以及浮点DSP运算,所以针对STM32的浮点数运算能力及 DSP 运算能力...
Verilog写的浮点运算单元。
介绍浮点运算的一些编程方法,对软件开发的浮点运算进行指导