Coffeescript:如何将string转换为数字?
我正在构build一个POST请求中发送的JSON对象。 此对象具有在发送之前需要从stringtypes转换为整数types的属性。 如何用咖啡文字做这个?
使用javascript parseInt
函数。
number = parseInt( stringToParse, 10 );
参考在这里 。
请记住,编译后,coffeescript就是javascript
您可以使用不太明显,更神奇,更less的键盘密集型操作符+:
+"158"
Javascript的parseInt函数将实现这一点。 请记住设置radix参数以防止混淆并确保可预测的行为。 (例如在咖啡上)
myNewInt = parseInt("176.67", 10)
MDN资源中有一些很好的例子: https : //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt
这在官方手册中还没有logging,但演员们似乎也是这样做的:
myString = "12323" myNumber = (Number) myString
我不推荐使用parseInt
因为它在一种情况下是错误的 – 我发现:
parseInt('09asdf', 10); #> return 09 which is not correct at all. It should return NaN
正确的答案应该来自@Corkscreewe。 还有另一个:
cleanInt = (x) -> x = Number(x) (if x >= 0 then Math.floor(x) else Math.ceil(x))
根据nXqd的回答中提到的链接,还可以通过将string乘以1隐式转换string:
'123' * 1 // 123
它对错误的input行为正确:
'123abc' * 1 // NaN
你也可以用浮游物做这个:
'123.456' * 1 // 123.456
我总是使用按位或将string转换为整数 。
"99.999" | 0 // returns 99
这是您需要的简单方法。 NaN将按预期返还。
parseInt( "09asdf".match(/^\d+$/)?[0] ? NaN, 10)
stringToConvernt = "$13,452,334.5" output = Number(stringToConvernt.replace(/[^0-9\.]/g, '')) console.log(output) //The output is `13452334.5`.