有關變數型態float and double
書上的範例如下:
#include <stdio.h> #include <math.h> int main(void) { double x; x=sqrt(10.0); printf("%f",x); return 0; } 既然x宣告為double,那為何印出來它的平方根時可以用 %f 型態?這不是float嗎? 因而我改成以下的寫法: #include <stdio.h> #include <math.h> int main(void) { double x; printf("enter a number: \n"); scanf("%f",&x); printf("%f", sqrt(x)); return 0; } 就是由使用者輸入一個值,例如9.0之類的,或9.0000,但結果出來全是0.00000? 但如果我將本題第一個的%f改成%lf,就算下面的%f不改,則可以得出正確結果。 找了一下網路上的說法,說是「%lf與%f在輸出的時候並沒有差別,但是在輸入的時候就會有差。」 因此就算原先宣告的值是double,輸入值時就一定要符合宣告型態,但輸出的值則用float型態也可以,是這樣嗎? |
所有時間均為 +8。現在的時間是 08:39 AM。 |
Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.