1. 程式人生 > >1029計算浮點數相除的余

1029計算浮點數相除的余

style oat 類型 默認 main 才會 using col 輸出

 1 #include<cstdio>
 2 using namespace std;
 3 int main()
 4 {
 5     double a,b,r;
 6     int k;
 7     scanf("%lf%lf",&a,&b);
 8     k=a/b;
 9     r=a-k*b;
10     printf("%g",r);
11     
12     return 0;
13 }

  • %g用於打印浮點型數據時,會去掉多余的零,至多保留六位有效數字(不同於%e的默認保留小數點後6位)
  • 當%g用於打印超過6位的浮點型數據時,因為精度問題,%f不得不輸出一個不精確的超過六位的數字,%e也是同樣,而%g此時會選擇%e格式進行輸出,並且按第一條要求,去掉多余的零,並且四舍五入到6位數字。這是《C Primer Plus》中所說的超過精度的時候的情況。 (可見,這個6位,是按float類型精度來計算的。)
  • 當一個數字的絕對值很小的時候,要表示這個數字所需要的字符數目就會多到讓人難以接受。舉例而言,如果我們把π*10^-10寫作0.00000000000314159就會顯得非常醜陋不雅,反之,如果我們寫作3.14159e-10,就不但簡潔而且易讀好懂。當指數是-4時,這兩種表現形式大小相同。對於比較小的數值,除非該數的指數小於或者等於-5,%g才會采用科學技術發來表示,即,以%e的格式進行輸出。

1029計算浮點數相除的余