41

浮動小数点数をきれいにフォーマットしていますが、関連する浮動小数点数がない場合は整数として表示したいと考えています。

いえ

  • 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')
4

8 に答える 8

50

%g代わりに使用したい%f

"%gx" % (factor / 100.00)
于 2009-05-08T03:40:17.840 に答える
29

次のように %g と %f を組み合わせて一致させることができます。

"%g" % ("%.2f" % number)
于 2012-03-08T22:04:21.870 に答える
3

私はちょうどこれに出くわしました、上記の修正はうまくいきませんでしたが、私はこれを思いつきました。

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
于 2010-08-23T13:43:25.080 に答える