藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月6日 10:18


double和long double

現在開發的環境下(solaris),double和long double 定義的兩個變量裡
付值152255285387.1892

printf("[%f]\n", double 變量);
printf("[%Lf]\n", long double 變量);

printf顯示結果都是152255285387.188995

sizeof(double) = 8
sizeof(long double) = 16

誰有這方面的經驗嗎?

double和long double

如果使用9位就可以保存的話
8位和16位保存的數據都是一樣的

我是這麼理解的

double和long double

sco下面,這兩者的轉化有bug,solaris上面我沒有碰到過,也不知道了!

double和long double

long double 變量 = (long double)152255285387 + (long double)0.1892;
後可以得到正確的結果,
long double 變量 = (long double)152255285387.1892 是上面錯誤的結果.
C 在處理152255285387.1892的時候像是用Double來保存的,
所以會有這樣的結果.

我現在的分析,有誰能從彙編或者編譯的角度看的更清晰的嗎?



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com