web-dev-qa-db-ja.com

Ruby-floatへの変換文字列は0.0を返します

変数には次の値が保存されます:$10.00そして、これを取得する必要がある10.00

この値をフロートに変換しようとしました:

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

ただ0.0

それのどこが悪いんだい?私も試しました

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

しかし、これでも私を助けませんでした...問題はどこにありますか?

ありがとう

17
user984621

最初に$を削除する必要があります。このようなものはすべて:

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

または

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

あなたが密度が好きで、非ドルに遭遇するかもしれないなら。

23
froderik

変数に設定するには:

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

より一般的なエラーは、10,000.00のような文字列にコンマがある千単位の値です。コンマは同じ切り捨てエラーを引き起こしますが、小数は発生せず、多くのプログラマーはそれをキャッチさえしません(もうコンマに気付かないでしょう)。それを修正するには:

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