網域名稱俱樂部


返回   網域名稱俱樂部 > 電腦與網路技術 > 電腦網路相關技術 > 一般軟體與網路使用討論
論壇幫助 社區 日曆事件 今日新文章 搜尋

回覆
 
主題工具
  #1  
舊 2014-03-05, 06:01 PM
哈啦 的頭像
哈啦 哈啦 目前離線
論壇管理員
 
註冊日期: 2002-05-28
文章: 23,053
預設 有關變數型態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型態也可以,是這樣嗎?
__________________
咖啡走路
微博


您是網站站長嗎?歡迎到站長俱樂部 一起討論吧。
按我看版規
code.club
回覆時引用此篇文章
回覆


發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼



所有時間均為 +8。現在的時間是 07:30 AM


本站主機由網易虛擬主機代管
Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.