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)動作しますが、少し冗長でジャバっぽいです。

4

2 に答える 2

4

次のコマンドを使用して、数値をdoubleに変換できます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 に答える