C ++粗俗分数

时间:2011-10-10 06:44:59

标签: c++ variables

是否有可以用作变量的粗俗部分?

例如:我想要将整数1和3分开。int的结果为0,因为double结果为0,333333333。但是,我希望结果正好是1/3,然后在程序中的其他方程式中使用它。

是否有类似于整数(int),十进制(double),e.t.c的变量。 (正在以类似的方式声明和使用)?或者我必须自己制作一个?

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

谢谢!

3 个答案:

答案 0 :(得分:10)

不是核心语言,但有些库,例如boost::Rational

答案 1 :(得分: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 :(得分:2)

现在stl中没有有理数,它将成为c0x中stl的一部分 - upcomming c ++ standart。您可以尝试boost,也可以自己写。