這是一個非常簡單的C問題。簡單的C數字格式化
有沒有辦法爲printf格式化浮點數,使其具有xx重要的小數?
所以我不是在談論,說,%5.3f
浮動,但如果我
float x=0.00001899383
我怎麼會輸出0.0000189,如果我想高達前三非零小數?
這是一個非常簡單的C問題。簡單的C數字格式化
有沒有辦法爲printf格式化浮點數,使其具有xx重要的小數?
所以我不是在談論,說,%5.3f
浮動,但如果我
float x=0.00001899383
我怎麼會輸出0.0000189,如果我想高達前三非零小數?
「%.3g」會嘗試輸出三位有效數字,無論是科學還是固定格式。
在BJG:
程序
#include <stdio.h>
int main()
{
double a = 123456789e-15;
int i = 0;
for(i=-10; i <= 10; ++i)
{
printf("%.3g\n", a);
a *= 10;
}
return 0;
}
輸出
1.23e-07
1.23e-06
1.23e-05
0.00
0.0
0.
0.123
1.23
12.3
123
1.23e+03
1.23e+04
1.23e+05
1.23e+06
1.23e+07
1.23e+08
1.23e+09
1.23e+10
1.23e+11
1.23e+12
1.23e+13
需要注意的是你的榜樣號碼3個顯著數字爲0.0000190 – caf 2010-07-19 00:37:55