作者 主題: 請問一下 long double 資料型態下運算  (閱讀 5143 次)

0 會員 與 1 訪客 正在閱讀本文。

bill0823

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
請問一下前輩
我撰寫簡單的運算
資料型態為long double
程式碼如下
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
main()
{
     int i=0;
     long double t1=0;
     long double t2=1;     
     for (i=0;i<5;i++)
     {
           t1+=t2;
           t2+=2; 
           printf("t1 data = %lf\n",t1);   
           printf("t2 data= %lf\n",t2);     
           }
     system("PAUSE");
}
但是結果不正確
請問是小弟我哪有有疏忽了??
結果如下
data= 0.000000
data= -2.000000
data= 0.000000
data= -0.000000
data= -0.000000
data= -2681561585988519400000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00.000000
data= 0.000000
data= -0.000000
data= -680564733841876930000000000000000000000.000000
data= -0.000000
請知道的前輩告知 
感恩
小弟我有將long double  換成double   就正確
請問小弟我是忽略哪個步驟


可以了
使用cout就正確 感謝前輩的指導
« 上次編輯: 2009-10-26 09:00 由 bill0823 »

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
回覆: 請問一下 long double 資料型態下運算
« 回覆 #1 於: 2009-10-23 15:04 »

用 print("%Lf"); 輸出看看。
I am kenduest - 小州

my website: http://kenduest.sayya.org/

bill0823

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
回覆: 請問一下 long double 資料型態下運算
« 回覆 #2 於: 2009-10-23 15:23 »

用 print("%Lf"); 輸出看看。

抱歉  來是一樣的結果耶
非常感謝您的回覆

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
回覆: 請問一下 long double 資料型態下運算
« 回覆 #3 於: 2009-10-23 15:48 »

我不知道你用哪種編譯器,但是我使用 gcc 都正確。

代碼: [選擇]
SayyaBBS:kendlee@~/www/tmp> cat 1.cpp
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
main()
{
     int i=0;
     long double t1=0;
     long double t2=1;
     for (i=0;i<5;i++)
     {
           t1+=t2;
           t2+=2;
           printf("t1 data = %Lf\n",t1);
           printf("t2 data= %Lf\n",t2);
           }
}
SayyaBBS:kendlee@~/www/tmp>
SayyaBBS:kendlee@~/www/tmp> g++ 1.cpp
SayyaBBS:kendlee@~/www/tmp>
SayyaBBS:kendlee@~/www/tmp>
SayyaBBS:kendlee@~/www/tmp> ./a.out
t1 data = 1.000000
t2 data= 3.000000
t1 data = 4.000000
t2 data= 5.000000
t1 data = 9.000000
t2 data= 7.000000
t1 data = 16.000000
t2 data= 9.000000
t1 data = 25.000000
t2 data= 11.000000

I am kenduest - 小州

my website: http://kenduest.sayya.org/

bill0823

  • 可愛的小學生
  • *
  • 文章數: 6
    • 檢視個人資料
回覆: 請問一下 long double 資料型態下運算
« 回覆 #4 於: 2009-10-23 16:23 »
前輩您好  我用的是dev c++  版本4.9.9.2
我在debug下看變數內的數值是正確的
但是只有在用printf顯示時會錯誤
大概真的是dev c++的問題

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org
回覆: 請問一下 long double 資料型態下運算
« 回覆 #5 於: 2009-10-23 16:52 »

既然你都用 c++ code 了,用 cout 輸出看看吧。
I am kenduest - 小州

my website: http://kenduest.sayya.org/