- 浏览: 3424316 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
http://www.cnblogs.com/wangkongming/archive/2013/01/18/2866788.html
(function ($) { $.MathUtils = { //加法函数,用来得到精确的加法结果 //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 add: function (arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0 } m = Math.pow(10, Math.max(r1, r2)) return (arg1 * m + arg2 * m) / m }, //减法函数,用来得到精确的加法结果 //说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 sub: function (arg1, arg2) { var r1, r2, m, n; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0 } m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度 n = (r1 >= r2) ? r1 : r2; return ((arg1 * m - arg2 * m) / m).toFixed(n); }, //乘法函数,用来得到精确的乘法结果 //说明:javascript的乘法结果会有误差,在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。 //调用:accMul(arg1,arg2) //返回值:arg1乘以arg2的精确结果 mul: function (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) }, //除法函数,用来得到精确的除法结果 //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。 //调用:accDiv(arg1,arg2) //返回值:arg1除以arg2的精确结果 div: function (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); } } }; //给Number类型增加一个add方法,调用起来更加方便。 Number.prototype.add = function (arg){ return $.MathUtils.add(arg, this); } //给Number类型增加一个add方法,调用起来更加方便。 Number.prototype.sub = function (arg){ return $.MathUtils.sub(arg, this); } //给Number类型增加一个div方法,调用起来更加方便。 Number.prototype.div = function (arg){ return $.MathUtils.div(arg, this); } //给Number类型增加一个mul方法,调用起来更加方便。 Number.prototype.mul = function (arg){ return $.MathUtils.mul(arg, this); } /*var a=0.69; var b=10; alert(a*b);//6.8999999999999995 alert($.MathUtils.mul(a, b));*/ })(jQuery);
发表评论
-
TimeDifference.js获取时间差插件
2016-06-06 16:46 1169http://www.oschina.net/p/timedi ... -
日期时间插件Date-Utils
2016-05-28 23:16 1341原文 https://segmentfault.com/a/1 ... -
Riot v2.4.1 发布,JavaScript 的 MVP 框架
2016-05-23 13:14 978http://www.oschina.net/news/736 ... -
个最实用的JavaScript开发工具
2016-05-21 10:22 853http://my.oschina.net/u/2421687 ... -
zepto tap “点透”的解决
2016-05-20 15:44 1039http://my.oschina.net/u/2497925 ... -
Date.js
2016-04-20 17:09 996原文 http://my.oschina.net/hnqing ... -
你真的了解图片的预加载吗
2016-04-14 10:26 1125http://my.oschina.net/HerrySun/ ... -
JavaScript之立即执行函数
2016-03-30 11:42 1237http://blog.csdn.net/qq83841923 ... -
JavaScript迭代
2016-03-27 01:44 750http://my.oschina.net/u/2346786 ... -
zepto(移动简化版jQuery),的 API 分类
2016-03-24 09:22 1735http://my.oschina.net/leejun200 ... -
[HTML5]Notification桌面提醒功能
2016-03-23 21:20 997[HTML5]Notification桌面提醒功能 http: ... -
JavaScript 文件拖拽上传插件 dropzone.js 介绍
2015-12-04 23:12 1834JavaScript 文件拖拽上传插件 dropzone.js ... -
jqgrid保存或者删除成功后调用自定义方法的解决方法
2015-11-19 23:53 6002参考: http://www.debugease.com/ja ... -
Java执行js脚本
2015-11-14 23:40 1033http://my.oschina.net/sniperLi/ ... -
YUI Compressor压缩JS
2015-11-06 17:12 1094过程心得记录 http://www.cnblogs.com/t ... -
如何使用js、html5在浏览器直接打开pdf文档
2015-11-03 22:32 8672http://q.cnblogs.com/q/48507/ ... -
js获取 本周,本月,本季度,本年,上月,上周,上季度,去年
2015-11-03 00:01 2941/** * 针对Ext的工具类 */ var ... -
正则表达式
2015-10-10 09:27 905http://my.oschina.net/robortly/ ... -
jquery垮页面事件传递
2015-08-25 21:18 1072http://my.oschina.net/u/157514/ ... -
Comet4J AJAX 服务器推送框架
2015-08-24 22:01 1498http://my.oschina.net/u/230843/ ...
相关推荐
在JavaScript编程语言中,浮点型数值的运算可能会遇到一些精度问题,这主要是由于二进制表示浮点数的方式导致的。本文将详细介绍如何解决JavaScript中的浮点型运算BUG,并提供一些实用的函数来实现更精确的计算。 ...
JavaScript中的浮点型运算在处理小数时可能会出现精度问题,这是由于计算机内部表示浮点数的方式导致的。在JS中,浮点数运算不是完全精确的,这在进行涉及小数的加、减、乘、除操作时尤为明显。为了解决这个问题,...
我Google了一下,发现原来这是JavaScript浮点运算的一个bug。 比如:7*0.8 JavaScript算出来就是:5.6000000000000005 网上找到了一些解决办法,就是重新写了一些浮点运算的函数。 下面就把这些方法摘录...
在JavaScript中,浮点型运算涉及到的是数字表示和计算精度的问题。由于计算机内部是以二进制形式存储和处理数据的,而十进制的小数在转换为二进制时可能会出现无限循环,导致无法精确表示某些浮点数,这就会引发浮点...
JavaScript 中 Number 数字数值运算后值不对的解决方法 ...解决 JavaScript 中 Number 数字数值运算后值不对的问题需要重新编写浮点运算函数或使用 Number 的 prototype 方法来实现精确的浮点运算。
而floatOPS.js的add方法能够确保在加法运算中不丢失精度。 减法方法(sub):减法操作同样面临精度问题,如1.5 - 1.4999999999999996可能不等于0.000000000000001。floatOPS.js的sub方法可以解决这个问题,提供一个...
创建一个自定义函数,如上面示例中的`rate`函数,用来计算小数部分的长度,然后在乘法运算中使用这个函数来调整精度。这个方法虽然较为复杂,但可以灵活地应用于各种浮点数运算。 3. **四舍五入法**: 使用...
由于JavaScript使用的是IEEE 754标准的双精度64位浮点格式来存储所有的数字类型,因此在进行加、减、乘、除等运算时,可能会出现结果不精确的情况。 #### 原理分析 首先理解为什么会出现这样的问题: 1. **存储误差...
这种不精确性导致了浮点运算中的精度丢失,使得看似简单的运算如1.1在JavaScript中不能精确地表示为`1.1`。 在JavaScript中,浮点运算的问题有时会表现为比较错误,如`1.0 - 0.9 !== 0.1`。这是因为计算过程中产生...
5. **异常处理**:在除法运算中,如果除数为零,大部分编程语言会抛出一个异常。因此,编写代码时需要检查除数是否为零以避免运行时错误。 6. **编译器优化**:现代编译器和解释器会对四则运算进行优化,例如,常量...
#### 知识点三:浮点数运算中的精度问题 由于上述存储限制,浮点数的运算结果往往不是完全准确的。在JavaScript中,当进行1.0 - 0.9这样的运算时,因为各自的小数部分都已近似存储,计算结果同样是一个近似值,于是...
与这种方法相比,这带来了准确性,并显着提高了性能,因为该浮点运算是在硬件中实现的。 请注意,由于ECMAScript使用64位IEEE 754,且每次操作后均舍入至最接近且无FMA指令,因此对JavaScript语言没有理论上的限制...
对于非常大或非常小的数,可以用科学记数法表示浮点值。采用科学记数法,可以把一个数表示为数字加e/E,后面加乘以10的倍数,如: 代码如下: var num1 = 3.125e7; // 31250000 var num2 = 3e-17; // 0....
我Google了一下,发现原来这是JavaScript浮点运算的一个bug。 比如:7*0.8 JavaScript算出来就是:5.6000000000000005 解决方法:网上找到了一些解决办法,就是重新写了一些浮点运算的函数。 下面就把这些方法摘录...
总之,JavaScript中的Number类型遵循IEEE 754标准,存在浮点数精度问题,尤其是涉及到大整数和小数运算时。了解这些限制对于编写高精度的代码至关重要,特别是在金融计算和其他需要精确数值操作的场景中。在必要时,...
在JavaScript编程中,浮点数的运算精度是一个需要特别注意的问题。在处理金融数据、科学计算或任何需要精确数值的场景下,精度问题尤为突出。...通过上述方法,开发者可以有效地处理和校正浮点运算中可能出现的误差。
比如在Javascript中,1038.1这个十进制数转换为二进制后是一个无限循环小数,而在计算机内部只能存储一个近似值。 针对这个问题,不同的编程语言都有自己的解决方案。在Javascript中,可以使用toFixed()方法来处理...