如何处理groovy中的数字

时间:2013-02-07 16:51:09

标签: java groovy

我有以下代码片段:

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)确实有效,但有点冗长和犹太人。

2 个答案:

答案 0 :(得分:3)

您可以使用as double将数字转换为双倍:

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

答案 1 :(得分:2)

使用

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

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

查看the Groovy Cookbook了解详情。