spr*_*man 12 javascript decimal
我有货币输入,只需要返回有效数字.输入始终有两个小数位,因此:
4.00 -> 4
4.10 -> 4.1
4.01 -> 4.01
Run Code Online (Sandbox Code Playgroud)
这是我目前正在做的事情:
// chop off unnecessary decimals
if (val.charAt(val.length-1) == '0') { // xx.00
val = val.substr(0, val.length-1);
}
if (val.charAt(val.length-1) == '0') { // xx.0
val = val.substr(0, val.length-1);
}
if (val.charAt(val.length-1) == '.') { // xx.
val = val.substr(0, val.length-1);
}
Run Code Online (Sandbox Code Playgroud)
它有用,并且有一定的直接性,我喜欢它,但也许有一种更漂亮的方式.
我想我可以使用一个循环并运行它三次,但实际上看起来它至少在我对if语句进行条件化时会变得笨重.除此之外,还有什么想法吗?我想也有一种正则表达式的方法呢......
sth*_*sth 15
您的代码也会在"1000"之类的数字中删除零.一个更好的变体是只能在小数点后面切出零.使用正则表达式的基本替换将如下所示:
str.replace(/(\.[0-9]*?)0+$/, "$1"); // remove trailing zeros
str.replace(/\.$/, ""); // remove trailing dot
Run Code Online (Sandbox Code Playgroud)
Óla*_*age 14
我相信parseFloat()会这样做.
parseFloat(4.00) // 4
parseFloat(4.10) // 4.1
parseFloat(4.01) // 4.01
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11967 次 |
| 最近记录: |