傻红宝石货币

时间:2011-04-15 22:26:39

标签: ruby testing currency marathontesting

我正在使用Jruby(无论如何都是红宝石,在jvm:D下运行)和马拉松测试(一个java swing应用程序),我在处理货币数字时遇到了一些麻烦。

我不使用Rails(不知道我是否可以使用rails甚至马拉松)并且我不知道/没有找到如何将字符串转换为小数或双倍。

我使用maraton的代码是这样的

$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个字符串......)

我虽然ruby可以更轻松地处理那些类型的东西..在java中我会转换那些在BigDecimails上(使用java.math.BigDecimal)但在纯Ruby上,不知道如何。

事先说。

3 个答案:

答案 0 :(得分: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" 

答案 1 :(得分: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

答案 2 :(得分:-1)

$saldoDisponivel=($saldoDisponivel.to_f + valor.to_f).to_s

Forçanisso...