小数部分为 0 时不显示

2016-07-07 01:46:00 +08:00
 lbfeng

https://jsfiddle.net/2pvt4dwm/

如何才能在小数为 0 时显示.0 ,其他情况显示正常小数。

3986 次点击
所在节点    JavaScript
16 条回复
oglop
2016-07-07 02:23:06 +08:00
float_number.toFixed(1)
lbfeng
2016-07-07 06:46:16 +08:00
@oglop 明显不行啊。 2.13 就只能显示 2.1
egen
2016-07-07 07:01:46 +08:00
.toFixed(0) === float_number ? :
ETiV
2016-07-07 07:17:09 +08:00
https://jsfiddle.net/2pvt4dwm/5/

感觉这是一道思考题,就看考虑的全面不全面…
shyling
2016-07-07 07:53:02 +08:00
判断一下咯 2.13 - (2.13|0) == 0 ,然后截取
oglop
2016-07-07 08:02:12 +08:00
float_number.toFixed( float_number.toString().split('.')[1].length) )
66beta
2016-07-07 08:04:34 +08:00
目前能想到的就是转成字符串 +''
正则匹配几个 0 ,有几个去掉几个 toFixed(*)
返回数字
Cabana
2016-07-07 08:04:37 +08:00
int(str(float_num).split('.')[1]) == 0?int(str(float_num).split('.')[0]):float_num
xqin
2016-07-07 08:42:17 +08:00
@oglop 依然是错的.
首先这是一个数字, 然后在赋值的时候, 虽然写的是 2.0 但这个变量的值是 2 没有 .0
所以你 toString().split('.')[1] 得到的是 undefined, 然后在 undefined 的基础上取 length 是会报错的.

```
float_number = 2.0
float_number.toFixed( float_number.toString().split('.')[1].length)//Cannot read property 'length' of undefined
```

另外你发的代码中多了一个 右括号.


https://jsfiddle.net/vb5wvgs8/1/
Yokira
2016-07-07 09:08:11 +08:00
var num = 3;
num = num == num.toFixed() ? `${num}.0` : num;
just4test
2016-07-07 09:33:05 +08:00
return num == int(num) ? num.toFixed(1) : num
lbfeng
2016-07-07 10:24:03 +08:00
@just4test

function int(n) { return parseInt(n) === n };
var float_number = 2.18;
$('#display').html(int(float_number) ? float_number.toFixed(1) : float_number);
eecjimmy
2016-07-07 12:04:57 +08:00
result = subject.replace(/\.0*$/mg, "");
oglop
2016-07-07 12:09:52 +08:00
oglop
2016-07-07 12:11:50 +08:00
@lbfeng 老外们似乎比较热心
eecjimmy
2016-07-07 12:12:11 +08:00
需求没看清楚: result = subject.replace(/\.0{2,}$/mg, ".0");

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/290769

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX