2

最初の n 文字のみが印刷されるように printf を使用して、浮動小数点数 1.2345678、0.1234567、123.45678 を印刷しようとしています。この数字を並べてほしい。printf("%*g", n, var) の %g 書式指定子はこれを行いますが、指定子は 0.1234567 の 0 を有効数字として扱っていません。これにより、0.1234567 の位置合わせが他の 2 つの数値に対してずれます。

指定された形式で数値を揃える最良の方法は何ですか? %g で 0 を重要なものとして扱うか、他の方法を使用しますか?

4

3 に答える 3

0

定義上、先行ゼロは有効数字ではありません。先頭のゼロを含めて最初の N 桁を出力する場合は、最初に数値を文字列に変換してから を使用しますprintf("%.*s", n, var_as_string)

このようにして、nあなたが尋ねたように、最初の文字が実際に印刷されます。もちろん、小数点記号.は、他の文字と同様に、 とは対照的に重要%gです。

于 2016-12-30T18:55:52.237 に答える