首页 文章

如何处理groovy中的数字

提问于
浏览
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) 确实有效,但有点冗长和犹太人 .

2 回答

  • 3

    使用

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

    要么

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

    检查the Groovy Cookbook以获取更多信息 .

  • 2

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

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

相关问题