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;
}