#1
|
||||
|
||||
有關變數型態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型態也可以,是這樣嗎? |