|
藍森林 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來保存的,
所以會有這樣的結果.
我現在的分析,有誰能從彙編或者編譯的角度看的更清晰的嗎? |
| |