タブで区切られたファイルを分割した後、必要な値が文字列変数に含まれています。残念ながら、このファイルのソースは私のコントロール外です。ルビーのエキスパート:このルビコードの改善を助けたり、提案したりできますか?
- "5.344"
- "-2.345"
- "-.977"
お知らせホワイトスペース:
は、ここで値を保持するかもしれないものの3正確な例であり、小数点の前に「0」はなく、二重引用符は文字列内にあります。私は私のフィールド変数に各1を持っていたら、これは私が現在やっているものです:
int_val = BigDecimal(value_as_string.gsub(/-\./,"-0.").gsub(/\"/,'').strip).round(0).to_i
は、私が最も近い整数(.to_iは切り捨て)に丸められ、各1を必要としています。私は助けることができるように任意のより良いアイデアが大いに評価されるだろうが、これはこの悪臭!
その答えをありがとう。私の変数は次のようなものですが、まだ少し余分に必要ですが、 ラウンド( '"5.344"') です。文字列には二重引用符が含まれます。 – tsdbrown
s( '"'、 '')。to_f.round –
@tsdbrown:この場合の 's'は、あなたの初期コードですでに述べたようにgsubを実行した後の文字列です。 round(value_as_string.gsub(/-./,"-0。 ")。gsub(/ \" /、 '')ストリップ)を呼び出します。 –