3

boost::format浮動小数点数を文字列に変換するために使用したいと思います。これらは期待される結果のいくつかの例です:

0.5     -> "0.5"
0       -> "0"
1.00001 -> "1"
3.66    -> "3.7"

私は現在使用しています

boost::format("%1$.1f")

ほとんどの場合は機能しますが、0is "0.0"and 1.00001isの結果は、 andの代わり"1.0"に必要な場合です。"0""1"

無意味なものを取り除くために何を変更する必要があり.0ますか?

4

1 に答える 1

3

条件を使用して、2 つの形式から選択します。

boost::format(abs(x-floor(x+0.05)) < 0.1 ? "%1$.0f" : "%1$.1f")
于 2013-07-19T21:27:26.147 に答える