source file of the Flower Library
- (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "rational.hh"
#include "string-convert.hh"
#include "libc-extension.hh"
-Rational::operator double () const
+double
+Rational::to_double () const
{
if (sign_ == -1 || sign_ == 1 || sign_ == 0)
return ((double)sign_) * num_ / den_;
Rational
Rational::trunc_rat () const
{
- return Rational (num_ - (num_ % den_), den_);
+ if (is_infinity())
+ return *this;
+ return Rational ((num_ - (num_ % den_)) * sign_, den_);
}
Rational::Rational ()
Rational::set_infinite (int s)
{
sign_ = ::sign (s) * 2;
+ num_ = 1;
}
Rational