智能显示小数点
Show decimal places intelligently?
我想在JavaScript中智能地显示小数点(即不必在冗长的小数点或大量的尾随零之间进行选择)。这是我的原始列表:
6
8
12.225252
目前我使用的是toFixed(1)
,输出如下:
6.0
8.0
12.2
有没有办法让我得到:
6
8
12.2
?显然,我可以编写一些自定义代码来做到这一点,但JavaScript中有任何内置的东西吗?
您可以使用Math.round
function roundTo(n, decimals) {
var d = Math.pow(10, decimals);
return Math.round(n * d)/d;
}
例子:
roundTo(6, 1)
6
roundTo(8, 1)
8
roundTo(12.623456, 1)
12.6
您可以检查值的下限是否与值本身相同:
if (Math.floor(x) === x) {
// no fractional part
}
意识到浮点数是棘手和恼人的,所以在纯数学上,你可能最终得到小数部分,你不期望它们。
edit当然这对"6.001"也没有多大帮助。
尝试在Number原型中添加这样的函数:
Number.prototype.toFixedIfDecimal = function(places){
var isWhole_re = /^'s*'d+'s*$/;
if(String(this).search(isWhole_re) != -1)
return this;
else
return this.toFixed(places);
}
那么你可以这样使用:
var myNumber1 = 8;
var myNumber2 = 10.512;
alert(myNumber1.toFixedIfDecimal(1)); // will return 8
alert(myNumber2.toFixedIfDecimal(1)); // will return 10.5
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- React重新渲染但未显示正确的组件
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 音频控件在mouseover上显示,在mouseout上淡出
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 显示5秒后隐藏潜水
- 用Javascript显示价格,小数点后两位
- 在谷歌图表中以小数点后两位显示数字
- 如何强制数字显示小数点后2位
- 如果为float,则显示小数点2位;如果为int,则显示十进制0位
- 谷歌图表显示散点上的小数点
- 智能显示小数点
- 如何显示一个小数点(不四舍五入)和整数显示.0
- 使用JQuery只显示小数点后2位
- Javascript计算器显示没有小数点的结果
- 计算不同直径单位的圆的面积、周长e.t.c,并在用户需要的小数点后显示有效数字