/*
- scalar.cc -- implement
+ scalar.cc -- implement Scalar
source file of the Flower Library
- (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
*/
#include <assert.h>
#include <stdio.h>
#include "scalar.hh"
+#include "rational.hh"
Scalar::Scalar (Rational r)
- :String (r)
{
-
+ (*this) = r.str ();
}
Scalar::operator Rational ()
if (p == -1)
return int (*this);
- String s2 = right_str (len()-p-1);
+ String s2 = right_str (length_i ()-p-1);
String s1 = left_str (p);
return Rational (s1.value_i (), s2.value_i ());
Scalar::isnum_b () const
{
int conv = false;
- if (len ())
+ if (length_i ())
{
long l =0;
conv = sscanf (strh_.ch_C (), "%ld", &l);
}
- return len() && conv;
+ return length_i () && conv;
}
Scalar::operator Real()
return value_i ();
}
-
Scalar::operator bool () const
{
- if (!len ())
+ return to_bool ();
+}
+
+bool
+Scalar::to_bool () const
+{
+ if (!length_i ())
return false;
if (*this == "0")
return false;