Position& Position::operator-= (const float rhs)
{
- *this += -rhs;
+ int major = (int)rhs;
+ int minor = (int)((rhs - major) * 10);
+
+ major_ -= major;
+ minor_ -= minor;
+
+ /* Check for underflow */
+ if (minor_ < 0)
+ {
+ major_ -= 1;
+ minor_ += 10;
+ }
return *this;
}
return temp;
}
+Position::operator int() const
+{
+ return major_;
+}
+
std::ostream& operator<< (std::ostream& os, const Position& rhs)
{
os << "Position(" << rhs.major_ << "." << rhs.minor_ << ")";