Coffeescript:如何将字符串转换为数字?

时间:2012-05-23 13:24:24

标签: coffeescript

我正在构建一个在POST请求中发送的JSON对象。 此对象具有在发送之前需要从字符串类型转换为整数类型的属性。如何用coffeescript做到这一点?

9 个答案:

答案 0 :(得分:60)

使用javascript parseInt功能。

number = parseInt( stringToParse, 10 );

参考是here

请记住,coffeescript在编译后只是javascript

答案 1 :(得分:37)

你可以使用不太明显,更神奇,键盘密集度较低的操作符+:

+"158"

答案 2 :(得分:7)

Javascript的parseInt函数将实现此目的。请记住设置radix参数以防止混淆并确保可预测的行为。 (例如在Coffeescript中)

myNewInt = parseInt("176.67", 10)

MDN资源中有一些很好的例子:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt

答案 3 :(得分:2)

尚未在官方手册中记录,但似乎演员也是如此:

myString = "12323"
myNumber = (Number) myString

答案 4 :(得分:2)

我不建议使用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))

https://coderwall.com/p/cbabhg

学习

答案 5 :(得分:2)

根据nXqd's answer中提到的链接,您还可以通过将字符串乘以1来隐式转换字符串:

'123' * 1 // 123

对于错误输入,它的行为正确:

'123abc' * 1 // NaN

您也可以使用浮点数执行此操作:

'123.456' * 1 // 123.456

答案 6 :(得分:1)

我总是使用按位OR将字符串转换为整数

"99.999" | 0 // returns 99

答案 7 :(得分:0)

这是满足您需求的简单方法。 NaN将按预期退回。

parseInt( "09asdf".match(/^\d+$/)?[0] ? NaN,  10)

答案 8 :(得分:0)



stringToConvernt = "$13,452,334.5"
output = Number(stringToConvernt.replace(/[^0-9\.]/g, ''))
console.log(output)
//The output is `13452334.5`.