10 進数から末尾のゼロを削除する正規表現を探しています。次の結果が返されます。
0.0002300 -> 0.00023
10.002300 -> 10.0023
100.0 -> 100
1000 -> 1000
0.0 -> 0
0 -> 0
基本的に、小数部分が 0 の場合は、末尾のゼロと末尾の小数点を削除する必要があります。また、それが値の場合は 0 を返す必要があります。何かご意見は?ありがとう。
10 進数から末尾のゼロを削除する正規表現を探しています。次の結果が返されます。
0.0002300 -> 0.00023
10.002300 -> 10.0023
100.0 -> 100
1000 -> 1000
0.0 -> 0
0 -> 0
基本的に、小数部分が 0 の場合は、末尾のゼロと末尾の小数点を削除する必要があります。また、それが値の場合は 0 を返す必要があります。何かご意見は?ありがとう。
ちょうど別の方法
["100.0","0.00223000"].map{|x|"%g"%x}
正規表現を試してください:
(?:(\..*[^0])0+|\.0+)$
そしてそれを次のように置き換えます:
\1
デモ:
tests = ['0.0002300', '10.002300', '100.0', '1000', '0.0', '0']
tests.each { |tst|
print tst, " -> ", tst.sub(/(?:(\..*[^0])0+|\.0+)$/, '\1'), "\n"
}
これは以下を生成します:
0.0002300 -> 0.00023
10.002300 -> 10.0023
100.0 -> 100
1000 -> 1000
0.0 -> 0
0 -> 0
"%g" % tst
または、単に末尾のゼロを削除することもできます:
tests = ['0.0002300', '10.002300', '100.0', '1000', '0.0', '0']
tests.each { |tst|
s = "%g" % tst
print tst, " -> ", s, "\n"
}
これは同じ出力を生成します。