1

我有以下代码片段:

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。

4

2 回答 2

4

您可以使用以下方法将数字转换为双精度as double

def number = foo[0][1] as double
number = (int)(number * 2.54)
于 2013-02-07T16:56:58.263 回答
2

利用

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

或者

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

查看Groovy 食谱以获取更多信息。

于 2013-02-07T17:00:17.730 回答