Глупая Рубиновая Валюта - PullRequest
1 голос
/ 16 апреля 2011

Я использую Jruby (в любом случае это ruby, работает под jvm: D) с марафонским тестом (приложение java swing), и у меня небольшие проблемы с обработкой номеров валют.

Я не использую Rails (не знаю, еслия могу использовать рельсы даже с марафоном) и я не знаю / не нашел КАК преобразовать строку в десятичную или двойную.

Мой код с маратоном выглядит примерно так

$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)

Iхотя ruby ​​мог бы обрабатывать такие вещи проще ... в java я бы конвертировал их на BigDecimails (используя java.math.BigDecimal), но на чистом Ruby не знаю как.

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 16 апреля 2011

Вы также должны использовать BigDecimal в ruby, чтобы не было ошибок с плавающей запятой:

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" 
0 голосов
/ 16 апреля 2011

Если вам удобнее использовать java BigDecimal, вы можете использовать java.math.BigDecimal непосредственно из сценариев марафона.

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

0 голосов
/ 16 апреля 2011
$saldoDisponivel=($saldoDisponivel.to_f + valor.to_f).to_s

Força nisso ...

...