作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想要的是与 Number.prototype.toPrecision() 几乎相反的东西,这意味着当我有数字时,它有多少位小数?例如
(12.3456).getDecimals() // 4
最佳答案
对于任何想知道如何更快地执行此操作(无需转换为字符串)的人,这里有一个解决方案:
function precision(a) {
var e = 1;
while (Math.round(a * e) / e !== a) e *= 10;
return Math.log(e) / Math.LN10;
}
编辑:涵盖边缘情况的更完整的解决方案:
function precision(a) {
if (!isFinite(a)) return 0;
var e = 1, p = 0;
while (Math.round(a * e) / e !== a) { e *= 10; p++; }
return p;
}
关于javascript - 如何在 Javascript 中获取 float 的小数位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9553354/
我是一名优秀的程序员,十分优秀!