it-swarm.com.de

Ruby - Konvertierungsstring in Float-Wert 0.0

In einer Variablen wird folgender Wert gespeichert: $10.00 Und ich muss diesen 10.00

Ich habe versucht, diesen Wert in Float umzuwandeln:

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

aber ich bekomme nur 0.0.

Was ist daran falsch? Ich habe es auch versucht

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

Aber auch das hat mir nicht geholfen ... wo ist ein Problem?

Vielen Dank

17
user984621

Sie müssen zuerst den $ entfernen. Die ganze Sache so:

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

oder

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

wenn Sie Dichte mögen und Nicht-Dollar treffen können. 

23
froderik

Um es in eine Variable zu setzen:

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

Der häufigere Fehler ist ein Wert in Tausendern, bei dem ein Komma in der Zeichenfolge wie 10.000,00 steht. Das Komma verursacht den gleichen Abschneidefehler, die Dezimalzahl jedoch nicht, und viele Programmierer werden es nicht einmal fangen (wir merken nicht einmal das Komma). Um das zu beheben:

current_price= '%.2f' % '10,000.00'.delete( "," ).to_f
0
Odysseus Ithaca