2013-02-28 13 views
15

In einer Variablen zurückgeben wird dieser Wert gespeichert: $10.00 Und ich brauche diese 10.00Rubin - Umwandlung Zeichenkette zu schweben 0,0

ich zu schwebe habe versucht zu bekommen, um diesen Wert zu konvertieren:

new_price = '%.2f' % (price.to_f) 

aber ich bekomme nur 0.0.

Was ist daran falsch? Ich habe auch versucht

price = price.strip 
price[0]="" 
new_price = '%.2f' % (price.to_f) 

Aber selbst hat dies mir nicht helfen ... wo ist das Problem?

Dank

Antwort

22

Sie müssen die $ erste entfernen. Das Ganze wie folgt aus:

'%.2f' % '$10.00'.delete("$").to_f 

oder

'%.2f' % '$10.00'[1..-1].to_f 

wenn Sie Dichte mögen und nicht Dollar auftreten können.

+0

danke für Ihre Antwort, aber die Ausgabe ist immer noch nur '10.0' statt' 10.00'. – user984621

+0

nicht für mich '1.9.3-p392: 006> '% .2f'% '$ 10.00'delete (" $ ") .to_f =>" 10.00 "' – froderik

+0

wie geht es Ihnen? – froderik

-1

Hinzufügen auf Froderick Antwort von:

Sie müssen zuerst die $ entfernen. Das Ganze wie folgt aus:

'%.2f' % '$10.00'.delete("$").to_f 

oder

'%.2f' % '$10.00'[1..-1].to_f 

wenn Sie Dichte mögen und nicht Dollar auftreten können. Sie müssen den Code zur Formatierung für die Ausgabe, um sicherzustellen, dass Sie zwei Dezimalstellen bekommen> mit

Sie benötigen eine Ausgabezeichenfolge zu formatieren Sie zwei Dezimalstellen, um sicherzustellen, erhalten.

puts "Current amount: #{format("%.2f", amount)}" 
+0

zu schauen aber es ist schon fertig .... :-) – froderik