1

マラソンテスト(Java Swingアプリ)でJruby(とにかく、jvm:Dで実行されているRuby)を使用していて、通貨番号の処理に少し問題があります。

私はRailsを使用していません(マラソンでもレールを使用できるかどうかはわかりません)。文字列を10進数またはdoubleに変換する方法がわかりません/見つかりませんでした。

マラソンを使った私のコードはこんな感じです

$saldoDisponivel = get_p("com.company.app.view.layout.objetos.JTextField1", "Text")

言い換えると、saldoDisponivelは文字列を取得します(例:3.232,20)。私はまた別の文字列valor="100,00"を持っています、そして私がそうするとき

$saldoDisponivel = $saldoDisponivel + valor 

もちろん、私は3.232,20100,00を取得します(2つの文字列を正しく追加します..lol)

私はルビーがそれらの種類のものをより簡単に扱うことができましたが..Javaでは(java.math.BigDecimalを使用して)BigDecimailsでそれらを変換しますが、純粋なRubyでは方法がわかりません。

事前に感謝します。

4

3 に答える 3

0

java BigDecimalをより快適に使用できる場合は、マラソンスクリプトから直接java.math.BigDecimalを使用できます。

x = java.math.BigDecimal.new '5.0'
y = java.math.BigDecimal.new '10.0'
puts x.add(y)
=> 15.0

于 2011-04-16T10:27:20.387 に答える
0

浮動小数点エラーが発生しないように、rubyでもBigDecimalを使用する必要があります。

require 'bigdecimal'

x = '3232.20'
y = '100.00'

xb = BigDecimal.new x
yb = BigDecimal.new y

r = xb + xy

r.to_s('F')

> r.to_s('F')
 => "3332.2" 
于 2011-04-15T23:07:09.720 に答える
-1
$saldoDisponivel=($saldoDisponivel.to_f + valor.to_f).to_s

Forçanisso..。

于 2011-04-15T22:32:22.280 に答える