2013-02-07 40 views
0

與數字打交道我有下面的代碼片段:如何在常規

mystring = "1.43 something something" 
def foo = mystring =~ /(\d*.\d*).*/ 
def number = foo[0][1] 
number = (int)(number * 2.54) 

上面的代碼失敗例外:Cannot cast object '1.431.43' with class 'java.lang.String' to class 'int'

但是,如果我最後一行更改爲:number = (int)(Double.parseDouble(number) * 1.54)那麼一切似乎都很好。

在groovy中做到這一點的最佳方法是什麼?

(int)(Double.parseDouble(number)確實有效,但有點冗長和javaish。

回答

3

您可以將數字轉換爲雙用as double

def number = foo[0][1] as double 
number = (int)(number * 2.54) 
2

使用

def number = foo[0][1] as double 

def number = foo[0][1].toDouble() 

檢查the Groovy Cookbook以獲取更多信息。