2011-10-10 22 views
4

是否有可以用作變量的粗俗分數?C++粗俗分數

例如:我想分割整數1和3.結果爲int爲0,因爲double結果爲0,333333333。但是,我希望結果恰好爲1/3,並且稍後將其用於程序中的其他方程中。

是否有類似於整數(int),十進制(double),e.t.c的變量。 (正在以類似的方式宣佈和使用)?或者我必須自己做一個?

起初我在想如何自己做,但我失敗了。

謝謝!

+0

感謝您的編輯,Björn! – AlexSavAlexandrov

回答

10

不是核心語言,但有庫,如boost::Rational

+1

如果您用'release'替換鏈接中的版本號,則鏈接將始終解析爲最新版本的Boost(所以您的答案永遠不會過時)。 –

+0

我有一種感覺,學習如何使用圖書館將需要一些時間。但非常感謝! – AlexSavAlexandrov

9

我不確定你在問什麼,但看看Boost.Rational

有了它,你可以編寫代碼如:

#include <boost/rational.hpp> 
boost::rational<int> one(1); 
boost::rational<int> three(3); 
boost::rational<int> one_third(one/three); 
2

有一個在STL沒有有理數現在,這將是C0X STL的一部分 - upcomming C++非標準。你可以嘗試boost,或自己寫。

+1

C++ 11是現實。它在八月份被傳回。但是,直到編譯器支持所有功能等,它將需要一些時間。 – arne