2013-10-23 32 views
0

我用JavaScript字符串值發送到Grails的服務器,該值爲「0.5」「0.5」不能鑄造龍常規

$.post(myURL,{scale:"0.5"},fnPost); 

當我蒙上它如下:

Long scale= params?.scale as Long ; 

我得到:

For input string: "0.5". Stacktrace follows: 

    java.lang.NumberFormatException: For input string: "0.5" 
     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 
     at java.lang.Long.parseLong(Long.java:419) 
     at java.lang.Long.valueOf(Long.java:525) 

真的,它是在常規奇怪地看到「0.5」不能被強制轉換爲長!

回答

2

0.5是雙。你不能將它投射到Long。您需要將其轉換爲DoubleBigDecimal(默認爲Groovy)

assert "0.5" as BigDecimal == 0.5G 
assert "0.5" as Double == 0.5D 
assert "5" as Long == 5L