愚蠢的红宝石货币

| 我在马拉松测试(Java Swing应用程序)中使用Jruby(无论如何都是ruby,在jvm:D下运行),并且在处理货币数字时遇到了一些麻烦。 我不使用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上,不知道如何。 提前。     
已邀请:
您还应该在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\" 
    
如果您更喜欢使用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
    
$saldoDisponivel=($saldoDisponivel.to_f + valor.to_f).to_s
Forçanisso ...     

要回复问题请先登录注册