summaryrefslogtreecommitdiff
path: root/src/value.cc
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2009-01-31 04:25:05 -0400
committerJohn Wiegley <johnw@newartisans.com>2009-01-31 04:25:05 -0400
commite9ff5caa13e2d60681010dbedcf56459ee7521a4 (patch)
tree056a124c232daccb3dcc616a32fb3b2a9c217d86 /src/value.cc
parentc96ab6cb0fb289cd50fb239ba44c01aba131fc18 (diff)
downloadledger-e9ff5caa13e2d60681010dbedcf56459ee7521a4.tar.gz
ledger-e9ff5caa13e2d60681010dbedcf56459ee7521a4.tar.bz2
ledger-e9ff5caa13e2d60681010dbedcf56459ee7521a4.zip
Rationals based math is now passing the unit tests.
Diffstat (limited to 'src/value.cc')
-rw-r--r--src/value.cc38
1 files changed, 5 insertions, 33 deletions
diff --git a/src/value.cc b/src/value.cc
index b63b8d76..b5ee6602 100644
--- a/src/value.cc
+++ b/src/value.cc
@@ -1400,56 +1400,28 @@ value_t value_t::abs() const
return NULL_VALUE;
}
-#ifdef INTEGER_MATH
-
-value_t value_t::round() const
+value_t value_t::rounded() const
{
switch (type()) {
case INTEGER:
return *this;
case AMOUNT:
- return as_amount().round();
- case BALANCE:
- return as_balance().round();
- case BALANCE_PAIR:
- return as_balance_pair().round();
+ return as_amount().rounded();
default:
break;
}
- throw_(value_error, "Cannot round " << label());
+ throw_(value_error, "Cannot set rounding for " << label());
return NULL_VALUE;
}
-void value_t::in_place_round()
-{
- switch (type()) {
- case INTEGER:
- break;
- case AMOUNT:
- as_amount_lval().in_place_round();
- break;
- case BALANCE:
- as_balance_lval().in_place_round();
- break;
- case BALANCE_PAIR:
- as_balance_pair_lval().in_place_round();
- break;
- default:
- throw_(value_error, "Cannot round " << label());
- break;
- }
-}
-
-#endif // INTEGER_MATH
-
-value_t value_t::unround() const
+value_t value_t::unrounded() const
{
switch (type()) {
case INTEGER:
return *this;
case AMOUNT:
- return as_amount().unround();
+ return as_amount().unrounded();
default:
break;
}