【发布时间】:2014-07-03 05:30:05
【问题描述】:
我有一个函数可以将给函数的数字四舍五入到最接近的整数便士。
<script type='text/javascript'>
Math.roundNumber = function(a,b){
if(!isNaN(parseInt(a))){
c = Math.pow(10,b);
return (Math.round(a*c)/c);
}
return false;
}
</script>
但是我注意到输入到函数中的上述数字只能四舍五入到最接近的一便士,但必须四舍五入到小数点后两位。
例如
15.236562213541684 = 15.24 9846.65456169846 = 9846.66我认为这只是一个改变的例子 返回 (Math.round(ac)/c); 至 返回 (Math.ceil(ac)/c);
显然我错了。
这件事有什么帮助吗?
** 编辑 **
这是我正在尝试实现的公式,也许它会有所帮助
a = intrest price
b = terms
c = a/b
d = c*(b-1)
e = a-d
例如
a = 295.30
b = 156
c = 295.30/156 = 1.90 (rounded up to nearest decimal as above)
d = 1.90 * (b-1) = 294.50
e = 295.30 - 294.50 = 0.80
任何人都可以正确执行上述操作吗?
Here 是我拥有的当前代码的链接,包括公式...这是我第一次启动 JavaScript 时制定的一个非常古老的公式(现在是不久前)但是我现在仍然没有更好就像我那时一样。
任何人都可以清理它,看看他们是否可以看到为什么它不能与上面的功能匹配?
【问题讨论】:
-
“显然我错了。”例子?
-
我认为您的代码确实有效。也许你缓存了一个旧脚本?
-
上面使用的 parseInt() 如果数字以零开头,则会产生意想不到的结果
标签: javascript math number-manipulation