浮動小数点数をきれいにフォーマットしていますが、関連する浮動小数点数がない場合は整数として表示したいと考えています。
いえ
- 1.20 -> 1.2x
- 1.78 -> 1.78x
- 0.80 -> 0.8x
- 2.00 -> 2x
少しの正規表現でこれを達成できますが、これをsprintf
行う唯一の方法があるかどうか疑問に思っていますか?
私は次のようにルビーでかなり怠惰にやっています:
("%0.2fx" % (factor / 100.0)).gsub(/\.?0+x$/,'x')
浮動小数点数をきれいにフォーマットしていますが、関連する浮動小数点数がない場合は整数として表示したいと考えています。
いえ
少しの正規表現でこれを達成できますが、これをsprintf
行う唯一の方法があるかどうか疑問に思っていますか?
私は次のようにルビーでかなり怠惰にやっています:
("%0.2fx" % (factor / 100.0)).gsub(/\.?0+x$/,'x')
%g
代わりに使用したい%f
:
"%gx" % (factor / 100.00)
次のように %g と %f を組み合わせて一致させることができます。
"%g" % ("%.2f" % number)
私はちょうどこれに出くわしました、上記の修正はうまくいきませんでしたが、私はこれを思いつきました。
def format_data(data_element)
# if the number is an in, dont show trailing zeros
if data_element.to_i == data_element
return "%i" % data_element
else
# otherwise show 2 decimals
return "%.2f" % data_element
end
end