我有以下代码片段:
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)
确实有效,但有点冗长和犹太人。
答案 0 :(得分:3)
您可以使用as double
将数字转换为双倍:
def number = foo[0][1] as double
number = (int)(number * 2.54)
答案 1 :(得分:2)