網域名稱俱樂部

網域名稱俱樂部 (https://www.domainclub.org/index.php)
-   一般軟體與網路使用討論 (https://www.domainclub.org/forumdisplay.php?f=43)
-   -   有關變數型態float and double (https://www.domainclub.org/showthread.php?t=36201)

哈啦 2014-03-05 06:01 PM

有關變數型態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.