PHP与ECMAScript_4_常用数学相关函数
| PHP | ECMAScript |
向上取整 | ceil($number) | Math.ceil( number ) |
向下取整 | floor($number) | Math.floor( number ) |
绝对值 | abs($number) | Math.abs( number ) |
四舍五入 | round($number,n) | Math.round( number ) 只能四舍五入到整数 |
n表示小数点向右保留位数,负数则向左保留 | number.toFixed(n) 返回字符串,四舍五入保留n个小数 | |
随机数 | mt_rand($min,$max) $min到$max之间随机整数 | Math.random() 返回0到1之间的随机小数 |
ECMAScript中toFiexd问题
在ES中四舍五入的函数 toFixed(n) , n为要保留的小数位数。 n为0~20,当n超过20的时候,JS会出错。
如果小数点前和要截取的前一位都是0时,将会出现精度问题。而且FF与IE的规则也不同,有些是四舍五入,有些是四舍六入。
五会根据不同的情况而不同。
var num = 0.056; alert (num.toFixed(1)); //会弹出0.0 或者0.1
可以试着重写tofixed方法。
Number.prototype.toFixed=function(len){ var add = 0; var s,temp; var s1 = this + ""; var start = s1.indexOf("."); if(s1.substr(start+len+1,1)>=5)add=1; var temp = Math.pow(10,len); s = Math.floor(this * temp) + add; return s/temp; }
这样,0,056就都可以直接转为0.1了。
参考链接:http://blog.csdn.net/nuptsv_ice/article/details/10493659