网上搜一番,发现很多手动算的文章,然后想起有 toFixed 方法就可以完成这个事情。我的疑问来了,不是有 toFixed 方法吗?干嘛要手动算,难道 IE6 不支持?我测试了一下,IE6 是支持的,直接 toFixed 就得了,还写函数干嘛?
var num = 123.456789; alert(num.toFixed(2)); // 输出 123.46 alert(num.toFixed(3)); // 输出 123.457 alert(3.1415926.toFixed(2)); // 输出 3.14 // 下面是网上搜索到的函数 function formatFloat(src, pos) { return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos); } alert(formatFloat("1212.2323", 2));
我又想起 PHP 里面有需求是要获取微秒级别的时间戳,我们知道 time 是秒级的,PHP 里还有个函数是 microtime,这个函数默认返回字符串形式,要得到数字形式的怎么弄呢,网上还依然有很多博客(甚至时间为2012 2013年发布的文章,PHP5都出来10年了啊喂)在介绍下面这种老旧的方法:
function microtime_float(){ list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); }
但其实自 PHP 5.0 起 microtime 函数可以接受一个参数,如果为 true,则返回一个浮点数。
我相信,现在几乎没有不支持 PHP5 的环境了吧,microtime_float() 这类函数还有什么存在意义?