What is the proper format string for float?

I would like to print a float without unnecessary characters. 0.2, 1.25, 0.02, but in case of lot of digits, I would like to cut the last digits: 1.234 to 1.23 %f, %.2f is not good I think

回答 (2 件)

Dasharath Gulvady
Dasharath Gulvady 2015 年 5 月 29 日

0 投票

If you are looking for a way to round off the decimal values, see the below thread:

1 件のコメント

Mr M.
Mr M. 2015 年 6 月 10 日
The problem is that %.2f is not good for me, since I dont want to show unnecessary zeros! For example 0.50 instead of 0.5. But 0.45 should be 0.45

サインインしてコメントする。

Guillaume
Guillaume 2015 年 6 月 10 日
編集済み: Guillaume 2015 年 6 月 10 日

0 投票

There is no formatting option that does exactly what you want. You could switch to using '%g' instead of '%f', this does not print trailing zeros, but the precision is then the number of significant digits instead of the number of digits after the decimal point. Furthermore '%g' switches to exponential notation if the magnitude of the number is too big or too small.
For the examples, you've given:
sprintf(n, '%.4g')
works

1 件のコメント

Walter Roberson
Walter Roberson 2015 年 6 月 10 日
%.2g rather than %.4g for the posted requirements.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCharacters and Strings についてさらに検索

質問済み:

2015 年 5 月 26 日

コメント済み:

2015 年 6 月 10 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by