关于toFixed()的重写
web JavaScript 2017-09-14 2575 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

7440889 2655 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

以下关于toFixed函数四舍五入精度不准的问题,我还没有碰到。只是因为重写的问题,导致小数点后面不自动补0了,所以我把重写注释了。


最近发现JS当中toFixed()方法存在一些问题。

采用toFixed()方法时,规则并不是标准的“四舍五入”。
而且不同的浏览器会有不同的结果,所以为了满足正确的运算,需要对toFixed重写。

在浏览了各大论坛后,有这么一种比较简单的方法:

<script>
Number.prototype.toFixed = function (exponent) { 
    return parseInt(this * Math.pow(10, exponent) + 0.5) / Math.pow(10, exponent); 
}
</script>
原理就不解释了,来不及了。
这个方法在正数情况下是可行的,但是对于负数还是会有偏差。
例如:document.write((-0.050).toFixed(2));
在Chrome下会输出为-0.04;
我觉得问题出现在+0.5那里,但是不知道咋改。
请大神指点一二。
另外,如果有更好的办法,还请不吝赐教,谢谢。

想了下……貌似这样可以的:
Number.prototype.toFixed = function (exponent) { 
    if(this>0){
        return parseInt(this * Math.pow(10, exponent) + 0.5) / Math.pow(10, exponent); 
    }else{
        return parseInt(this * Math.pow(10, exponent) - 0.5) / Math.pow(10, exponent); 
    }   
}

版权声明:本篇文章来源于网络。 来源链接

相关推荐
return和return false的区别
JavaScript | 2020-08-26 20219
1. return返回null,起到中断方法执行的效果,只要不return false事件处理函数将会继续执行,表单将提交 2. return false,事件处理函数会取消事件,不再继续向下执行。比如表单将终止提交。 <script> function validateForm(){ var username...
console.log怎样输出换行
JavaScript | 2020-04-17 14691
两个console.log()之间默认是换行的,不用单独处理,如果想输出换行,可以用 console.log( '\n' ); 其他内容 如果同时打印数字和字符串,并且数字在前,打印字符串会添加引号显示。 console.log('test',1) ==》test 1 console.log(1,'test') ...
评论:0条
评论加载中...
发表评论