r19695 - gnucash/trunk/src - Bug #502853 - Incorrent tax rounding in invoice (rounding of .5)
Geert Janssens
gjanssens at code.gnucash.org
Sat Oct 23 06:38:49 EDT 2010
Author: gjanssens
Date: 2010-10-23 06:38:48 -0400 (Sat, 23 Oct 2010)
New Revision: 19695
Trac: http://svn.gnucash.org/trac/changeset/19695
Modified:
gnucash/trunk/src/app-utils/gnc-euro.c
gnucash/trunk/src/app-utils/gnc-exp-parser.c
gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
gnucash/trunk/src/app-utils/test/test-print-parse-amount.c
gnucash/trunk/src/business/business-gnome/dialog-billterms.c
gnucash/trunk/src/business/business-gnome/dialog-invoice.c
gnucash/trunk/src/engine/Account.c
gnucash/trunk/src/engine/Scrub.c
gnucash/trunk/src/engine/Scrub2.c
gnucash/trunk/src/engine/Split.c
gnucash/trunk/src/engine/Transaction.c
gnucash/trunk/src/engine/cap-gains.c
gnucash/trunk/src/engine/engine-helpers.c
gnucash/trunk/src/engine/gnc-pricedb.c
gnucash/trunk/src/engine/gncBusGuile.c
gnucash/trunk/src/engine/gncEntry.c
gnucash/trunk/src/engine/gncInvoice.c
gnucash/trunk/src/engine/test-core/test-engine-stuff.c
gnucash/trunk/src/gnome-utils/dialog-transfer.c
gnucash/trunk/src/gnome-utils/gnc-amount-edit.c
gnucash/trunk/src/gnome-utils/window-main-summarybar.c
gnucash/trunk/src/gnome/dialog-fincalc.c
gnucash/trunk/src/gnome/druid-hierarchy.c
gnucash/trunk/src/gnome/druid-loan.c
gnucash/trunk/src/gnome/gnc-plugin-page-budget.c
gnucash/trunk/src/gnome/gnc-split-reg.c
gnucash/trunk/src/import-export/aqbanking/gnc-ab-transfer.c
gnucash/trunk/src/import-export/aqbanking/gnc-ab-utils.c
gnucash/trunk/src/import-export/csv/gnc-csv-model.c
gnucash/trunk/src/import-export/hbci/gnc-hbci-getbalance.c
gnucash/trunk/src/import-export/hbci/gnc-hbci-gettrans.c
gnucash/trunk/src/import-export/hbci/gnc-hbci-transfer.c
gnucash/trunk/src/import-export/ofx/gnc-ofx-import.c
gnucash/trunk/src/libqof/qof/qofquerycore.c
gnucash/trunk/src/register/ledger-core/split-register-model-save.c
gnucash/trunk/src/register/ledger-core/split-register-model.c
gnucash/trunk/src/register/ledger-core/split-register.c
gnucash/trunk/src/register/register-core/pricecell.c
Log:
Bug #502853 - Incorrent tax rounding in invoice (rounding of .5)
This patch changes the default rounding behaviour in GnuCash from
"Round to nearest even" to "Round away to infinity". See the bugreport
for more details on these different rounding methods.
Modified: gnucash/trunk/src/app-utils/gnc-euro.c
===================================================================
--- gnucash/trunk/src/app-utils/gnc-euro.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/app-utils/gnc-euro.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -164,12 +164,11 @@
{
gnc_numeric rate;
- rate = double_to_gnc_numeric (result->rate, 100000, GNC_HOW_RND_ROUND);
+ rate = double_to_gnc_numeric (result->rate, 100000, GNC_HOW_RND_ROUND_HALF_UP);
- /* Which rounding should be used here? H. Thoma said
- GNC_HOW_RND_FLOOR, but I (cstim) think he's wrong -- the official
- rules say you *have* to use GNC_HOW_RND_ROUND! */
- return gnc_numeric_div (value, rate, 100, GNC_HOW_RND_ROUND);
+ /* EC Regulation 1103/97 states we should use "Round half away from zero"
+ * See http://europa.eu/legislation_summaries/economic_and_monetary_affairs/institutional_and_economic_framework/l25025_en.htm */
+ return gnc_numeric_div (value, rate, 100, GNC_HOW_RND_ROUND_HALF_UP);
}
}
@@ -198,10 +197,12 @@
{
gnc_numeric rate;
- rate = double_to_gnc_numeric (result->rate, 100000, GNC_HOW_RND_ROUND);
+ rate = double_to_gnc_numeric (result->rate, 100000, GNC_HOW_RND_ROUND_HALF_UP);
+ /* EC Regulation 1103/97 states we should use "Round half away from zero"
+ * See http://europa.eu/legislation_summaries/economic_and_monetary_affairs/institutional_and_economic_framework/l25025_en.htm */
return gnc_numeric_mul (value, rate, gnc_commodity_get_fraction (currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
}
@@ -228,7 +229,7 @@
return gnc_numeric_zero ();
return double_to_gnc_numeric (result->rate, GNC_DENOM_AUTO,
- GNC_HOW_DENOM_SIGFIGS(6) | GNC_HOW_RND_ROUND);
+ GNC_HOW_DENOM_SIGFIGS(6) | GNC_HOW_RND_ROUND_HALF_UP);
}
/* ------------------------------------------------------ */
Modified: gnucash/trunk/src/app-utils/gnc-exp-parser.c
===================================================================
--- gnucash/trunk/src/app-utils/gnc-exp-parser.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/app-utils/gnc-exp-parser.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -393,7 +393,7 @@
result = g_new0( gnc_numeric, 1 );
*result = double_to_gnc_numeric( scm_num2dbl(scmTmp, G_STRFUNC),
GNC_DENOM_AUTO,
- GNC_HOW_DENOM_SIGFIGS(6) | GNC_HOW_RND_ROUND );
+ GNC_HOW_DENOM_SIGFIGS(6) | GNC_HOW_RND_ROUND_HALF_UP );
/* FIXME: cleanup scmArgs = scm_list, cons'ed cells? */
return (void*)result;
}
Modified: gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
===================================================================
--- gnucash/trunk/src/app-utils/gnc-sx-instance-model.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/app-utils/gnc-sx-instance-model.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -1156,7 +1156,7 @@
{
exchange = gnc_numeric_div(gnc_numeric_create(1,1),
gnc_price_get_value(price),
- 1000, GNC_HOW_RND_ROUND);
+ 1000, GNC_HOW_RND_ROUND_HALF_UP);
}
}
else
@@ -1177,7 +1177,7 @@
}
g_string_free(exchange_rate_var_name, TRUE);
- amt = gnc_numeric_mul(final, exchange_rate, 1000, GNC_HOW_RND_ROUND);
+ amt = gnc_numeric_mul(final, exchange_rate, 1000, GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetAmount(copying_split, amt);
}
@@ -1612,7 +1612,7 @@
/* Multiply with the count factor. */
final = gnc_numeric_mul(final_once, creation_data->count,
gnc_numeric_denom(final_once),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gncn_error = gnc_numeric_check(final);
if (gncn_error != GNC_ERROR_OK)
Modified: gnucash/trunk/src/app-utils/test/test-print-parse-amount.c
===================================================================
--- gnucash/trunk/src/app-utils/test/test-print-parse-amount.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/app-utils/test/test-print-parse-amount.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -55,7 +55,7 @@
print_info.force_fit = 0;
print_info.round = 0;
- n1 = gnc_numeric_convert (n, fraction, GNC_HOW_RND_ROUND);
+ n1 = gnc_numeric_convert (n, fraction, GNC_HOW_RND_ROUND_HALF_UP);
if (gnc_numeric_check(n1))
{
do_test_args((gnc_numeric_check(n1) == GNC_ERROR_OVERFLOW),
@@ -108,11 +108,11 @@
IS_VALID_NUM(n, n);
test_num (n);
- n1 = gnc_numeric_mul (n, n, n.denom, GNC_HOW_RND_ROUND);
+ n1 = gnc_numeric_mul (n, n, n.denom, GNC_HOW_RND_ROUND_HALF_UP);
IS_VALID_NUM(n1, n);
test_num (n);
- n1 = gnc_numeric_mul (n, n, n.denom, GNC_HOW_RND_ROUND);
+ n1 = gnc_numeric_mul (n, n, n.denom, GNC_HOW_RND_ROUND_HALF_UP);
IS_VALID_NUM(n1, n);
test_num (n);
}
Modified: gnucash/trunk/src/business/business-gnome/dialog-billterms.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/dialog-billterms.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/business/business-gnome/dialog-billterms.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -160,7 +160,7 @@
gdouble fl = 0.0;
fl = gtk_spin_button_get_value (GTK_SPIN_BUTTON (widget));
- val = double_to_gnc_numeric (fl, 100000, GNC_HOW_RND_ROUND);
+ val = double_to_gnc_numeric (fl, 100000, GNC_HOW_RND_ROUND_HALF_UP);
func (term, val);
}
Modified: gnucash/trunk/src/business/business-gnome/dialog-invoice.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/dialog-invoice.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/business/business-gnome/dialog-invoice.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -1344,7 +1344,7 @@
{
char string[256];
- amt = gnc_numeric_convert (amt, gnc_commodity_get_fraction(com), GNC_HOW_RND_ROUND);
+ amt = gnc_numeric_convert (amt, gnc_commodity_get_fraction(com), GNC_HOW_RND_ROUND_HALF_UP);
xaccSPrintAmount (string, amt, gnc_default_print_info (TRUE));
gtk_label_set_text (label, string);
}
@@ -1399,7 +1399,7 @@
{
amount = gncInvoiceGetTotalOf (invoice, GNC_PAYMENT_CASH);
amount = gnc_numeric_sub (amount, to_charge_amt,
- gnc_commodity_get_fraction (currency), GNC_HOW_RND_ROUND);
+ gnc_commodity_get_fraction (currency), GNC_HOW_RND_ROUND_HALF_UP);
gnc_invoice_reset_total_label (GTK_LABEL (iw->total_cash_label), amount, currency);
}
@@ -1407,7 +1407,7 @@
{
amount = gncInvoiceGetTotalOf (invoice, GNC_PAYMENT_CARD);
amount = gnc_numeric_add (amount, to_charge_amt,
- gnc_commodity_get_fraction (currency), GNC_HOW_RND_ROUND);
+ gnc_commodity_get_fraction (currency), GNC_HOW_RND_ROUND_HALF_UP);
gnc_invoice_reset_total_label (GTK_LABEL (iw->total_charge_label), amount, currency);
}
}
Modified: gnucash/trunk/src/engine/Account.c
===================================================================
--- gnucash/trunk/src/engine/Account.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/Account.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -3374,7 +3374,7 @@
balance = xaccAccountGetXxxBalanceInCurrency (acc, cb->fn, cb->currency);
cb->balance = gnc_numeric_add (cb->balance, balance,
gnc_commodity_get_fraction (cb->currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
static void
@@ -3389,7 +3389,7 @@
acc, cb->date, cb->asOfDateFn, cb->currency);
cb->balance = gnc_numeric_add (cb->balance, balance,
gnc_commodity_get_fraction (cb->currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
Modified: gnucash/trunk/src/engine/Scrub.c
===================================================================
--- gnucash/trunk/src/engine/Scrub.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/Scrub.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -244,7 +244,7 @@
scu = MIN (xaccAccountGetCommoditySCU (account),
gnc_commodity_get_fraction (currency));
- if (gnc_numeric_same (amount, value, scu, GNC_HOW_RND_ROUND))
+ if (gnc_numeric_same (amount, value, scu, GNC_HOW_RND_ROUND_HALF_UP))
{
LEAVE("(split=%p) different values", split);
return;
@@ -566,7 +566,7 @@
* of the denominators might already be reduced. */
new_value = gnc_numeric_sub (old_value, imbalance,
gnc_commodity_get_fraction(currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetValue (balance_split, new_value);
@@ -669,7 +669,7 @@
new_value = gnc_numeric_div (xaccSplitGetAmount(balance_split),
convrate,
gnc_commodity_get_fraction(currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
if (! gnc_numeric_equal (old_value, new_value))
{
xaccTransBeginEdit (trans);
@@ -740,7 +740,7 @@
old_amount = xaccSplitGetAmount (balance_split);
new_amount = gnc_numeric_sub (old_amount, gnc_monetary_value(*imbal_mon),
gnc_commodity_get_fraction(commodity),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetAmount (balance_split, new_amount);
@@ -755,7 +755,7 @@
old_value = xaccSplitGetValue (balance_split);
new_value = gnc_numeric_sub (old_value, val_imbalance,
gnc_commodity_get_fraction(currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetValue (balance_split, new_value);
}
@@ -806,7 +806,7 @@
old_value = xaccSplitGetValue (balance_split);
new_value = gnc_numeric_sub (old_value, xaccSplitGetValue(split),
gnc_commodity_get_fraction(currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetValue (balance_split, new_value);
/* Don't change the balance split's amount since the amount
Modified: gnucash/trunk/src/engine/Scrub2.c
===================================================================
--- gnucash/trunk/src/engine/Scrub2.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/Scrub2.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -273,7 +273,7 @@
frac = gnc_numeric_div (dst_amt, src_amt,
GNC_DENOM_AUTO, GNC_HOW_DENOM_REDUCE);
target_val = gnc_numeric_mul (frac, src_val,
- scu, GNC_HOW_DENOM_EXACT | GNC_HOW_RND_ROUND);
+ scu, GNC_HOW_DENOM_EXACT | GNC_HOW_RND_ROUND_HALF_UP);
if (gnc_numeric_check (target_val))
{
PERR ("Numeric overflow of value\n"
Modified: gnucash/trunk/src/engine/Split.c
===================================================================
--- gnucash/trunk/src/engine/Split.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/Split.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -937,9 +937,9 @@
xaccTransBeginEdit (s->parent);
s->amount = double_to_gnc_numeric(amt, get_commodity_denom(s),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
s->value = double_to_gnc_numeric(price * amt, get_currency_denom(s),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
SET_GAINS_A_VDIRTY(s);
mark_split (s);
@@ -956,9 +956,9 @@
xaccTransBeginEdit (s->parent);
s->amount = gnc_numeric_convert(amt, get_commodity_denom(s),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
s->value = gnc_numeric_mul(s->amount, price,
- get_currency_denom(s), GNC_HOW_RND_ROUND);
+ get_currency_denom(s), GNC_HOW_RND_ROUND_HALF_UP);
SET_GAINS_A_VDIRTY(s);
mark_split (s);
@@ -973,7 +973,7 @@
g_return_if_fail(split);
split->value = gnc_numeric_mul(xaccSplitGetAmount(split),
price, get_currency_denom(split),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
void
@@ -985,7 +985,7 @@
s->value = gnc_numeric_mul(xaccSplitGetAmount(s),
price, get_currency_denom(s),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
SET_GAINS_VDIRTY(s);
mark_split (s);
@@ -1000,7 +1000,7 @@
gnc_numeric old_price, old_amt;
int commodity_denom = get_commodity_denom(s);
gnc_numeric amt = double_to_gnc_numeric(damt, commodity_denom,
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
if (!s) return;
ENTER (" ");
xaccTransBeginEdit (s->parent);
@@ -1020,7 +1020,7 @@
s->amount = gnc_numeric_convert(amt, commodity_denom,
GNC_HOW_RND_NEVER);
s->value = gnc_numeric_mul(s->amount, old_price,
- get_currency_denom(s), GNC_HOW_RND_ROUND);
+ get_currency_denom(s), GNC_HOW_RND_ROUND_HALF_UP);
SET_GAINS_A_VDIRTY(s);
mark_split (s);
@@ -1036,7 +1036,7 @@
if (split->acc)
{
split->amount = gnc_numeric_convert(amt,
- get_commodity_denom(split), GNC_HOW_RND_ROUND);
+ get_commodity_denom(split), GNC_HOW_RND_ROUND_HALF_UP);
}
else
{
@@ -1057,7 +1057,7 @@
xaccTransBeginEdit (s->parent);
if (s->acc)
s->amount = gnc_numeric_convert(amt, get_commodity_denom(s),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
else
s->amount = amt;
@@ -1073,7 +1073,7 @@
{
g_return_if_fail(split);
split->value = gnc_numeric_convert(amt,
- get_currency_denom(split), GNC_HOW_RND_ROUND);
+ get_currency_denom(split), GNC_HOW_RND_ROUND_HALF_UP);
}
/* The value of the split in the _transaction's_ currency. */
@@ -1090,7 +1090,7 @@
xaccTransBeginEdit (s->parent);
new_val = gnc_numeric_convert(amt, get_currency_denom(s),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
if (gnc_numeric_check(new_val) == GNC_ERROR_OK)
s->value = new_val;
else PERR("numeric error in converting the split value's denominator");
@@ -1151,16 +1151,16 @@
{
s->amount = gnc_numeric_convert(value,
get_commodity_denom(s),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
s->value = gnc_numeric_convert(value,
get_currency_denom(s),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
else if (gnc_commodity_equiv(commodity, base_currency))
{
s->amount = gnc_numeric_convert(value, get_commodity_denom(s),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
else
{
@@ -1257,7 +1257,7 @@
* doesn't mean the denominators are the same! */
value = gnc_numeric_convert(value,
gnc_commodity_get_fraction (base_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
LEAVE (" total=%" G_GINT64_FORMAT "/%" G_GINT64_FORMAT,
value.num, value.denom);
@@ -1329,7 +1329,7 @@
convrate = xaccTransGetAccountConvRate(txn, account);
return gnc_numeric_mul (value, convrate,
gnc_commodity_get_fraction (to_commodity),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
/********************************************************************\
@@ -1847,7 +1847,7 @@
price = gnc_numeric_div(val, amt,
GNC_DENOM_AUTO,
GNC_HOW_DENOM_SIGFIGS(PRICE_SIGFIGS) |
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
/* During random checks we can get some very weird prices. Let's
* handle some overflow and other error conditions by returning
Modified: gnucash/trunk/src/engine/Transaction.c
===================================================================
--- gnucash/trunk/src/engine/Transaction.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/Transaction.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -975,7 +975,7 @@
if (!trans || !acc) return total;
total = gnc_numeric_convert (total, xaccAccountGetCommoditySCU (acc),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
FOR_EACH_SPLIT(trans, if (acc == xaccSplitGetAccount(s))
total = gnc_numeric_add_fixed(
total, xaccSplitGetAmount(s)));
Modified: gnucash/trunk/src/engine/cap-gains.c
===================================================================
--- gnucash/trunk/src/engine/cap-gains.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/cap-gains.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -494,7 +494,7 @@
GNC_DENOM_AUTO, GNC_HOW_DENOM_REDUCE);
val_a = gnc_numeric_mul (frac, val_tot,
gnc_numeric_denom(val_tot),
- GNC_HOW_RND_ROUND | GNC_HOW_DENOM_EXACT);
+ GNC_HOW_RND_ROUND_HALF_UP | GNC_HOW_DENOM_EXACT);
val_b = gnc_numeric_sub_fixed (val_tot, val_a);
if (gnc_numeric_check(val_a))
@@ -876,7 +876,7 @@
/* Basis for this split: */
value = gnc_numeric_mul (frac, lot_value,
gnc_numeric_denom(opening_value),
- GNC_HOW_DENOM_EXACT | GNC_HOW_RND_ROUND);
+ GNC_HOW_DENOM_EXACT | GNC_HOW_RND_ROUND_HALF_UP);
/* Capital gain for this split: */
value = gnc_numeric_sub (value, split->value,
GNC_DENOM_AUTO, GNC_HOW_DENOM_FIXED);
Modified: gnucash/trunk/src/engine/engine-helpers.c
===================================================================
--- gnucash/trunk/src/engine/engine-helpers.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/engine-helpers.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -1259,7 +1259,7 @@
amount = scm_num2dbl (scm, G_STRFUNC);
val = double_to_gnc_numeric (amount, GNC_DENOM_AUTO,
- GNC_HOW_DENOM_SIGFIGS(6) | GNC_HOW_RND_ROUND);
+ GNC_HOW_DENOM_SIGFIGS(6) | GNC_HOW_RND_ROUND_HALF_UP);
if (!safe_strcmp (pr_type, "pr-price"))
{
Modified: gnucash/trunk/src/engine/gnc-pricedb.c
===================================================================
--- gnucash/trunk/src/engine/gnc-pricedb.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/gnc-pricedb.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -2170,7 +2170,7 @@
{
balance = gnc_numeric_mul (balance, gnc_price_get_value (price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_unref (price);
return balance;
}
@@ -2183,7 +2183,7 @@
{
balance = gnc_numeric_div (balance, gnc_price_get_value (price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_unref (price);
return balance;
}
@@ -2239,7 +2239,7 @@
GNC_HOW_DENOM_EXACT | GNC_HOW_RND_NEVER);
balance = gnc_numeric_mul (balance, gnc_price_get_value (price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_list_destroy(price_list);
return balance;
@@ -2267,7 +2267,7 @@
{
balance = gnc_numeric_mul (balance, gnc_price_get_value (price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_unref (price);
return balance;
}
@@ -2280,7 +2280,7 @@
{
balance = gnc_numeric_div (balance, gnc_price_get_value (price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_unref (price);
return balance;
}
@@ -2321,7 +2321,7 @@
currency_price_value = gnc_numeric_div(gnc_numeric_create(1, 1),
gnc_price_get_value(currency_price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_unref(currency_price);
}
}
@@ -2333,11 +2333,11 @@
balance = gnc_numeric_mul (balance, currency_price_value,
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
balance = gnc_numeric_mul (balance, gnc_price_get_value (price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_list_destroy(price_list);
return balance;
@@ -2367,7 +2367,7 @@
{
balance = gnc_numeric_mul (balance, gnc_price_get_value (price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_unref (price);
return balance;
}
@@ -2380,7 +2380,7 @@
{
balance = gnc_numeric_div (balance, gnc_price_get_value (price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_unref (price);
return balance;
}
@@ -2421,7 +2421,7 @@
currency_price_value = gnc_numeric_div(gnc_numeric_create(1, 1),
gnc_price_get_value(currency_price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_unref(currency_price);
}
}
@@ -2433,10 +2433,10 @@
balance = gnc_numeric_mul (balance, currency_price_value,
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
balance = gnc_numeric_mul (balance, gnc_price_get_value (price),
gnc_commodity_get_fraction (new_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_list_destroy(price_list);
return balance;
Modified: gnucash/trunk/src/engine/gncBusGuile.c
===================================================================
--- gnucash/trunk/src/engine/gncBusGuile.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/gncBusGuile.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -85,7 +85,7 @@
com = xaccAccountGetCommodity (av->account);
val = gnc_numeric_convert (av->value, gnc_commodity_get_fraction (com),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
return scm_cons (SWIG_NewPointerObj(av->account, account_type, 0),
gnc_numeric_to_scm (val));
Modified: gnucash/trunk/src/engine/gncEntry.c
===================================================================
--- gnucash/trunk/src/engine/gncEntry.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/gncEntry.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -1173,13 +1173,13 @@
if (discount_value != NULL)
{
- if (SCU) discount = gnc_numeric_convert(discount, SCU, GNC_HOW_RND_ROUND);
+ if (SCU) discount = gnc_numeric_convert(discount, SCU, GNC_HOW_RND_ROUND_HALF_UP);
*discount_value = discount;
}
if (value != NULL)
{
- if (SCU) result = gnc_numeric_convert(result, SCU, GNC_HOW_RND_ROUND);
+ if (SCU) result = gnc_numeric_convert(result, SCU, GNC_HOW_RND_ROUND_HALF_UP);
*value = result;
}
@@ -1200,14 +1200,14 @@
switch (gncTaxTableEntryGetType (entry))
{
case GNC_AMT_TYPE_VALUE:
- if (SCU) amount = gnc_numeric_convert(amount, SCU, GNC_HOW_RND_ROUND);
+ if (SCU) amount = gnc_numeric_convert(amount, SCU, GNC_HOW_RND_ROUND_HALF_UP);
taxes = gncAccountValueAdd (taxes, acc, amount);
break;
case GNC_AMT_TYPE_PERCENT:
amount = gnc_numeric_div (amount, percent, GNC_DENOM_AUTO,
GNC_HOW_DENOM_LCD);
tax = gnc_numeric_mul (pretax, amount, GNC_DENOM_AUTO, GNC_HOW_DENOM_LCD);
- if (SCU) tax = gnc_numeric_convert(tax, SCU, GNC_HOW_RND_ROUND);
+ if (SCU) tax = gnc_numeric_convert(tax, SCU, GNC_HOW_RND_ROUND_HALF_UP);
taxes = gncAccountValueAdd (taxes, acc, tax);
break;
default:
@@ -1303,18 +1303,18 @@
&(entry->b_value), NULL, &(entry->b_tax_values));
entry->i_value_rounded = gnc_numeric_convert (entry->i_value, denom,
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
entry->i_disc_value_rounded = gnc_numeric_convert (entry->i_disc_value, denom,
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
entry->i_tax_value = gncAccountValueTotal (entry->i_tax_values);
entry->i_tax_value_rounded = gnc_numeric_convert (entry->i_tax_value, denom,
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
entry->b_value_rounded = gnc_numeric_convert (entry->b_value, denom,
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
entry->b_tax_value = gncAccountValueTotal (entry->b_tax_values);
entry->b_tax_value_rounded = gnc_numeric_convert (entry->b_tax_value, denom,
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
entry->values_dirty = FALSE;
}
Modified: gnucash/trunk/src/engine/gncInvoice.c
===================================================================
--- gnucash/trunk/src/engine/gncInvoice.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/gncInvoice.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -1297,7 +1297,7 @@
{
gnc_numeric converted_amount;
xaccSplitSetValue(split, (reverse ? gnc_numeric_neg(value) : value));
- converted_amount = gnc_numeric_div(value, gnc_price_get_value(price), GNC_DENOM_AUTO, GNC_HOW_RND_ROUND);
+ converted_amount = gnc_numeric_div(value, gnc_price_get_value(price), GNC_DENOM_AUTO, GNC_HOW_RND_ROUND_HALF_UP);
printf("converting from %f to %f\n", gnc_numeric_to_double(value), gnc_numeric_to_double(converted_amount));
xaccSplitSetAmount(split, reverse ? gnc_numeric_neg(converted_amount) : converted_amount);
}
@@ -1388,7 +1388,7 @@
{
gnc_numeric converted_amount;
xaccSplitSetValue(split, (reverse ? gnc_numeric_neg(acc_val->value) : acc_val->value));
- converted_amount = gnc_numeric_div(acc_val->value, gnc_price_get_value(price), GNC_DENOM_AUTO, GNC_HOW_RND_ROUND);
+ converted_amount = gnc_numeric_div(acc_val->value, gnc_price_get_value(price), GNC_DENOM_AUTO, GNC_HOW_RND_ROUND_HALF_UP);
printf("converting from %f to %f\n", gnc_numeric_to_double(acc_val->value), gnc_numeric_to_double(converted_amount));
xaccSplitSetAmount(split, reverse ? gnc_numeric_neg(converted_amount) : converted_amount);
@@ -1687,7 +1687,7 @@
{
/* Need to value the payment in terms of the owner commodity */
xaccSplitSetAmount(split, reverse ? amount : gnc_numeric_neg (amount));
- payment_value = gnc_numeric_mul(amount, exch, GNC_DENOM_AUTO, GNC_HOW_RND_ROUND);
+ payment_value = gnc_numeric_mul(amount, exch, GNC_DENOM_AUTO, GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetValue(split, reverse ? payment_value : gnc_numeric_neg(payment_value));
}
Modified: gnucash/trunk/src/engine/test-core/test-engine-stuff.c
===================================================================
--- gnucash/trunk/src/engine/test-core/test-engine-stuff.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/engine/test-core/test-engine-stuff.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -1335,7 +1335,7 @@
rate = gnc_numeric_abs(get_random_gnc_numeric());
amt = gnc_numeric_mul(val, rate,
GNC_DENOM_AUTO, GNC_HOW_DENOM_REDUCE);
- amt = gnc_numeric_convert(amt, denom, GNC_HOW_RND_ROUND);
+ amt = gnc_numeric_convert(amt, denom, GNC_HOW_RND_ROUND_HALF_UP);
}
while (gnc_numeric_check(amt) != GNC_ERROR_OK);
}
Modified: gnucash/trunk/src/gnome/dialog-fincalc.c
===================================================================
--- gnucash/trunk/src/gnome/dialog-fincalc.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/gnome/dialog-fincalc.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -151,12 +151,12 @@
gnc_amount_edit_set_damount (GNC_AMOUNT_EDIT(fcd->amounts[FUTURE_VALUE]),
-fcd->financial_info.fv);
- pmt = double_to_gnc_numeric (fcd->financial_info.pmt, 100000, GNC_HOW_RND_ROUND);
+ pmt = double_to_gnc_numeric (fcd->financial_info.pmt, 100000, GNC_HOW_RND_ROUND_HALF_UP);
commodity = gnc_default_currency ();
total = gnc_numeric_mul (npp, pmt, gnc_commodity_get_fraction (commodity),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSPrintAmount (string, total, gnc_default_print_info (FALSE));
gtk_label_set_text (GTK_LABEL(fcd->payment_total_label), string);
Modified: gnucash/trunk/src/gnome/druid-hierarchy.c
===================================================================
--- gnucash/trunk/src/gnome/druid-hierarchy.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/gnome/druid-hierarchy.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -779,7 +779,7 @@
*/
{
int account_cmdty_fraction = xaccAccountGetCommoditySCU(account);
- amount = gnc_numeric_convert(amount, account_cmdty_fraction, GNC_HOW_RND_ROUND);
+ amount = gnc_numeric_convert(amount, account_cmdty_fraction, GNC_HOW_RND_ROUND_HALF_UP);
}
set_final_balance (data->balance_hash, account, amount);
qof_event_gen (QOF_INSTANCE(account), QOF_EVENT_MODIFY, NULL);
Modified: gnucash/trunk/src/gnome/druid-loan.c
===================================================================
--- gnucash/trunk/src/gnome/druid-loan.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/gnome/druid-loan.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -2152,7 +2152,7 @@
GNCPrintAmountInfo pricePAI = gnc_default_price_print_info();
#define AMTBUF_LEN 64
gchar amtBuf[AMTBUF_LEN];
- gint GNCN_HOW = (GNC_HOW_DENOM_SIGFIGS(2) | GNC_HOW_RND_ROUND);
+ gint GNCN_HOW = (GNC_HOW_DENOM_SIGFIGS(2) | GNC_HOW_RND_ROUND_HALF_UP);
/* We're going to use this a lot, below, so just create it once. */
xaccSPrintAmount( amtBuf,
@@ -2803,7 +2803,7 @@
PERR( "pmt Parsing error at %s", eloc );
continue;
}
- val = gnc_numeric_convert( val, 100, GNC_HOW_RND_ROUND );
+ val = gnc_numeric_convert( val, 100, GNC_HOW_RND_ROUND_HALF_UP );
rowNumData[0] = val;
if ( ! gnc_exp_parser_parse_separate_vars(
@@ -2812,7 +2812,7 @@
PERR( "ppmt Parsing error at %s", eloc );
continue;
}
- val = gnc_numeric_convert( val, 100, GNC_HOW_RND_ROUND );
+ val = gnc_numeric_convert( val, 100, GNC_HOW_RND_ROUND_HALF_UP );
rowNumData[1] = val;
if ( ! gnc_exp_parser_parse_separate_vars(
@@ -2821,7 +2821,7 @@
PERR( "ipmt Parsing error at %s", eloc );
continue;
}
- val = gnc_numeric_convert( val, 100, GNC_HOW_RND_ROUND );
+ val = gnc_numeric_convert( val, 100, GNC_HOW_RND_ROUND_HALF_UP );
rowNumData[2] = val;
}
@@ -2861,7 +2861,7 @@
{
gint gncn_how =
GNC_HOW_DENOM_SIGFIGS(2)
- | GNC_HOW_RND_ROUND;
+ | GNC_HOW_RND_ROUND_HALF_UP;
gnc_numeric val;
rowNumData = (gnc_numeric*)g_hash_table_lookup( repayment_schedule,
&curDate );
Modified: gnucash/trunk/src/gnome/gnc-plugin-page-budget.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-budget.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-budget.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -916,7 +916,7 @@
num = gnc_numeric_convert(num, GNC_DENOM_AUTO,
- GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) | GNC_HOW_RND_ROUND);
+ GNC_HOW_DENOM_SIGFIGS(priv->sigFigs) | GNC_HOW_RND_ROUND_HALF_UP);
gnc_budget_set_account_period_value(
priv->budget, acct, i, num);
}
Modified: gnucash/trunk/src/gnome/gnc-split-reg.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-split-reg.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/gnome/gnc-split-reg.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -670,7 +670,7 @@
amount = gnc_numeric_mul (amount, gnc_price_get_value (price),
gnc_commodity_get_fraction (currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSPrintAmount (string, amount, print_info);
Modified: gnucash/trunk/src/gnome-utils/dialog-transfer.c
===================================================================
--- gnucash/trunk/src/gnome-utils/dialog-transfer.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/gnome-utils/dialog-transfer.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -901,7 +901,7 @@
to_amount = gnc_numeric_zero();
else
to_amount = gnc_numeric_mul(gnc_amount_edit_get_amount(amount_edit),
- price, scu, GNC_HOW_RND_ROUND);
+ price, scu, GNC_HOW_RND_ROUND_HALF_UP);
/* Update the dialog. */
gnc_amount_edit_set_amount(to_amount_edit, to_amount);
@@ -950,7 +950,7 @@
gnc_amount_edit_evaluate (GNC_AMOUNT_EDIT (xferData->to_amount_edit));
price = gnc_xfer_dialog_compute_price(xferData);
- price = gnc_numeric_convert (price, PRECISION, GNC_HOW_RND_ROUND);
+ price = gnc_numeric_convert (price, PRECISION, GNC_HOW_RND_ROUND_HALF_UP);
gnc_amount_edit_set_amount(GNC_AMOUNT_EDIT(xferData->price_edit), price);
gnc_xfer_dialog_update_conv_info(xferData);
Modified: gnucash/trunk/src/gnome-utils/gnc-amount-edit.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-amount-edit.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/gnome-utils/gnc-amount-edit.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -251,7 +251,7 @@
gnc_numeric old_amount = gae->amount;
if (gae->fraction > 0)
- amount = gnc_numeric_convert (amount, gae->fraction, GNC_HOW_RND_ROUND);
+ amount = gnc_numeric_convert (amount, gae->fraction, GNC_HOW_RND_ROUND_HALF_UP);
gnc_amount_edit_set_amount (gae, amount);
@@ -354,7 +354,7 @@
else
fraction = 100000;
- amount = double_to_gnc_numeric (damount, fraction, GNC_HOW_RND_ROUND);
+ amount = double_to_gnc_numeric (damount, fraction, GNC_HOW_RND_ROUND_HALF_UP);
gnc_amount_edit_set_amount (gae, amount);
}
Modified: gnucash/trunk/src/gnome-utils/window-main-summarybar.c
===================================================================
--- gnucash/trunk/src/gnome-utils/window-main-summarybar.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/gnome-utils/window-main-summarybar.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -206,7 +206,7 @@
currency_accum->assets =
gnc_numeric_add (currency_accum->assets, end_amount,
gnc_commodity_get_fraction (account_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
if (non_currency)
@@ -214,7 +214,7 @@
non_curr_accum->assets =
gnc_numeric_add (non_curr_accum->assets, end_amount_default_currency,
gnc_commodity_get_fraction (options.default_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
if (options.grand_total)
@@ -222,7 +222,7 @@
grand_total_accum->assets =
gnc_numeric_add (grand_total_accum->assets, end_amount_default_currency,
gnc_commodity_get_fraction (options.default_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
if (options.euro && (currency_accum != euro_accum))
@@ -231,7 +231,7 @@
gnc_numeric_add (euro_accum->assets,
gnc_convert_to_euro(account_currency, end_amount),
gnc_commodity_get_fraction (euro_commodity),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
gnc_ui_accounts_recurse(account, currency_list, options);
@@ -256,11 +256,11 @@
currency_accum->profits =
gnc_numeric_add (currency_accum->profits, start_amount,
gnc_commodity_get_fraction (account_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
currency_accum->profits =
gnc_numeric_sub (currency_accum->profits, end_amount,
gnc_commodity_get_fraction (account_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
if (non_currency)
@@ -268,11 +268,11 @@
non_curr_accum->profits =
gnc_numeric_add (non_curr_accum->profits, start_amount_default_currency,
gnc_commodity_get_fraction (options.default_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
non_curr_accum->profits =
gnc_numeric_sub (non_curr_accum->profits, end_amount_default_currency,
gnc_commodity_get_fraction (options.default_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
if (options.grand_total)
@@ -281,12 +281,12 @@
gnc_numeric_add (grand_total_accum->profits,
start_amount_default_currency,
gnc_commodity_get_fraction (options.default_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
grand_total_accum->profits =
gnc_numeric_sub (grand_total_accum->profits,
end_amount_default_currency,
gnc_commodity_get_fraction (options.default_currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
if (options.euro && (currency_accum != euro_accum))
@@ -295,12 +295,12 @@
gnc_numeric_add (euro_accum->profits,
gnc_convert_to_euro(account_currency, start_amount),
gnc_commodity_get_fraction (euro_commodity),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
euro_accum->profits =
gnc_numeric_sub (euro_accum->profits,
gnc_convert_to_euro(account_currency, end_amount),
gnc_commodity_get_fraction (euro_commodity),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
gnc_ui_accounts_recurse(account, currency_list, options);
Modified: gnucash/trunk/src/import-export/aqbanking/gnc-ab-transfer.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/gnc-ab-transfer.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/import-export/aqbanking/gnc-ab-transfer.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -223,7 +223,7 @@
amount = double_to_gnc_numeric(
AB_Value_GetValueAsDouble(AB_Transaction_GetValue(ab_trans)),
xaccAccountGetCommoditySCU(gnc_acc),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_xfer_dialog_set_amount(xfer_dialog, amount);
description = gnc_ab_description_to_gnc(ab_trans);
Modified: gnucash/trunk/src/import-export/aqbanking/gnc-ab-utils.c
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/gnc-ab-utils.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/import-export/aqbanking/gnc-ab-utils.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -520,7 +520,7 @@
gnc_amount = double_to_gnc_numeric(
d_value,
xaccAccountGetCommoditySCU(gnc_acc),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
if (!ab_value)
g_warning("transaction_cb: Oops, value was NULL. Using 0");
xaccSplitSetBaseValue(split, gnc_amount, xaccAccountGetCommodity(gnc_acc));
@@ -815,7 +815,7 @@
value = double_to_gnc_numeric(booked_value,
xaccAccountGetCommoditySCU(gnc_acc),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
if (noted_value == 0.0 && booked_value == 0.0)
{
dialog = gtk_message_dialog_new(
Modified: gnucash/trunk/src/import-export/csv/gnc-csv-model.c
===================================================================
--- gnucash/trunk/src/import-export/csv/gnc-csv-model.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/import-export/csv/gnc-csv-model.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -690,7 +690,7 @@
prop->value = g_new(gnc_numeric, 1);
*((gnc_numeric*)(prop->value)) =
double_to_gnc_numeric(value, xaccAccountGetCommoditySCU(prop->list->account),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
return TRUE;
}
@@ -859,7 +859,7 @@
QofBook* book = gnc_account_get_book(list->account);
gnc_commodity* currency = xaccAccountGetCommodity(list->account);
gnc_numeric amount = double_to_gnc_numeric(0.0, xaccAccountGetCommoditySCU(list->account),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
/* This flag is set to TRUE if we can use the "Deposit" or "Withdrawal" column. */
gboolean amount_set = FALSE;
@@ -909,7 +909,7 @@
amount = gnc_numeric_add(*((gnc_numeric*)(prop->value)),
amount,
xaccAccountGetCommoditySCU(list->account),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
amount_set = TRUE;
/* We will use the "Deposit" and "Withdrawal" columns in preference to "Balance". */
trans_line->balance_set = FALSE;
@@ -922,7 +922,7 @@
amount = gnc_numeric_add(gnc_numeric_neg(*((gnc_numeric*)(prop->value))),
amount,
xaccAccountGetCommoditySCU(list->account),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
amount_set = TRUE;
/* We will use the "Deposit" and "Withdrawal" columns in preference to "Balance". */
trans_line->balance_set = FALSE;
@@ -1154,7 +1154,7 @@
* any given transaction. */
gnc_numeric balance_offset = double_to_gnc_numeric(0.0,
xaccAccountGetCommoditySCU(account),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
while (transactions != NULL)
{
GncCsvTransLine* trans_line = (GncCsvTransLine*)transactions->data;
@@ -1165,13 +1165,13 @@
gnc_numeric existing_balance = gnc_numeric_add(balance_offset,
xaccAccountGetBalanceAsOfDate(account, date),
xaccAccountGetCommoditySCU(account),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
/* The amount of the transaction is the difference between the new and existing balance. */
gnc_numeric amount = gnc_numeric_sub(trans_line->balance,
existing_balance,
xaccAccountGetCommoditySCU(account),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
SplitList* splits = xaccTransGetSplitList(trans_line->trans);
while (splits)
@@ -1187,7 +1187,7 @@
balance_offset = gnc_numeric_add(balance_offset,
amount,
xaccAccountGetCommoditySCU(account),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
transactions = g_list_next(transactions);
}
Modified: gnucash/trunk/src/import-export/hbci/gnc-hbci-getbalance.c
===================================================================
--- gnucash/trunk/src/import-export/hbci/gnc-hbci-getbalance.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/import-export/hbci/gnc-hbci-getbalance.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -265,7 +265,7 @@
value = double_to_gnc_numeric (booked_value,
xaccAccountGetCommoditySCU(gnc_acc),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
if ((noted_value == 0.0) && (booked_value == 0.0))
{
dialog = gtk_message_dialog_new(GTK_WINDOW(parent),
Modified: gnucash/trunk/src/import-export/hbci/gnc-hbci-gettrans.c
===================================================================
--- gnucash/trunk/src/import-export/hbci/gnc-hbci-gettrans.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/import-export/hbci/gnc-hbci-gettrans.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -342,7 +342,7 @@
gnc_amount = double_to_gnc_numeric
(d_value,
xaccAccountGetCommoditySCU(gnc_acc),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
if (!h_value)
g_warning("trans_list_cb: Oops, value was NULL. Using 0.\n");
xaccSplitSetBaseValue(split, gnc_amount, xaccAccountGetCommodity(gnc_acc));
Modified: gnucash/trunk/src/import-export/hbci/gnc-hbci-transfer.c
===================================================================
--- gnucash/trunk/src/import-export/hbci/gnc-hbci-transfer.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/import-export/hbci/gnc-hbci-transfer.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -271,7 +271,7 @@
amount = double_to_gnc_numeric
(AB_Value_GetValue (AB_Transaction_GetValue (h_trans)),
xaccAccountGetCommoditySCU(gnc_acc),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
/*switch (trans_type) {
case SINGLE_DEBITNOTE:
gnc_xfer_dialog_set_amount (transdialog, gnc_numeric_neg (amount));
Modified: gnucash/trunk/src/import-export/ofx/gnc-ofx-import.c
===================================================================
--- gnucash/trunk/src/import-export/ofx/gnc-ofx-import.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/import-export/ofx/gnc-ofx-import.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -385,7 +385,7 @@
gnc_amount = double_to_gnc_numeric (data.amount,
gnc_commodity_get_fraction(xaccTransGetCurrency(transaction)),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetBaseValue(split, gnc_amount, xaccTransGetCurrency(transaction));
/* Also put the ofx transaction's memo in the split's memo field */
@@ -440,10 +440,10 @@
gnc_amount = double_to_gnc_numeric (ofx_get_investment_amount(data),
gnc_commodity_get_fraction(investment_commodity),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
gnc_units = double_to_gnc_numeric (data.units,
gnc_commodity_get_fraction(investment_commodity),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetAmount(split, gnc_units);
xaccSplitSetValue(split, gnc_amount);
@@ -523,7 +523,7 @@
gnc_amount = double_to_gnc_numeric (data.amount,
gnc_commodity_get_fraction(xaccTransGetCurrency(transaction)),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetBaseValue(split, gnc_amount, xaccTransGetCurrency(transaction));
/* Also put the ofx transaction name in the splits memo field, or ofx memo if name is unavailable */
@@ -546,7 +546,7 @@
gnc_amount = double_to_gnc_numeric (-data.amount,/*OFX_INCOME amounts come in as positive numbers*/
gnc_commodity_get_fraction(xaccTransGetCurrency(transaction)),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetBaseValue(split, gnc_amount, xaccTransGetCurrency(transaction));
/* Also put the ofx transaction name in the splits memo field, or ofx memo if name is unavailable */
@@ -570,7 +570,7 @@
gnc_amount = double_to_gnc_numeric (-ofx_get_investment_amount(data),
gnc_commodity_get_fraction(xaccTransGetCurrency(transaction)),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetBaseValue(split, gnc_amount, xaccTransGetCurrency(transaction));
/* Also put the ofx transaction name in the splits memo field, or ofx memo if name is unavailable */
Modified: gnucash/trunk/src/libqof/qof/qofquerycore.c
===================================================================
--- gnucash/trunk/src/libqof/qof/qofquerycore.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/libqof/qof/qofquerycore.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -475,7 +475,7 @@
(gnc_numeric_compare (gnc_numeric_abs
(gnc_numeric_sub (gnc_numeric_abs (obj_val),
gnc_numeric_abs (pdata->amount),
- 100000, GNC_HOW_RND_ROUND)),
+ 100000, GNC_HOW_RND_ROUND_HALF_UP)),
cmp_val) < 0);
}
else
Modified: gnucash/trunk/src/register/ledger-core/split-register-model-save.c
===================================================================
--- gnucash/trunk/src/register/ledger-core/split-register-model-save.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/register/ledger-core/split-register-model-save.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -440,7 +440,7 @@
{
value = gnc_numeric_div(new_amount, amtconv,
gnc_commodity_get_fraction(curr),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetValue(sd->split, value);
}
else
@@ -471,7 +471,7 @@
/* convert the amount to the Value ... */
value = gnc_numeric_div (new_amount, amtconv,
gnc_commodity_get_fraction (curr),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetValue (sd->split, value);
}
else
@@ -488,7 +488,7 @@
acc = xaccSplitGetAccount (sd->split);
new_amount = gnc_numeric_mul (value, convrate,
xaccAccountGetCommoditySCU (acc),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetAmount (sd->split, new_amount);
}
}
@@ -561,7 +561,7 @@
{
gnc_numeric amount = xaccSplitGetAmount (sd->split);
value = gnc_numeric_div(
- amount, rate, gnc_commodity_get_fraction(txn_cur), GNC_HOW_RND_ROUND);
+ amount, rate, gnc_commodity_get_fraction(txn_cur), GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetValue (sd->split, value);
/* XXX: do we need to set the amount on the other split? */
@@ -584,7 +584,7 @@
acc);
amount = gnc_numeric_mul (value, rate, xaccAccountGetCommoditySCU (acc),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetAmount (other_split, amount);
}
@@ -612,7 +612,7 @@
amount = xaccSplitGetAmount (sd->split);
value = gnc_numeric_div (amount, rate, gnc_commodity_get_fraction (txn_cur),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
xaccSplitSetValue (sd->split, value);
#endif
}
Modified: gnucash/trunk/src/register/ledger-core/split-register-model.c
===================================================================
--- gnucash/trunk/src/register/ledger-core/split-register-model.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/register/ledger-core/split-register-model.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -1625,13 +1625,13 @@
imbalance = gnc_numeric_mul (imbalance,
xaccTransGetAccountConvRate(trans, acc),
gnc_commodity_get_fraction (currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
else
{
imbalance = gnc_numeric_convert (imbalance,
gnc_commodity_get_fraction (currency),
- GNC_HOW_RND_ROUND);
+ GNC_HOW_RND_ROUND_HALF_UP);
}
return xaccPrintAmount (imbalance, gnc_account_print_info (acc, FALSE));
Modified: gnucash/trunk/src/register/ledger-core/split-register.c
===================================================================
--- gnucash/trunk/src/register/ledger-core/split-register.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/register/ledger-core/split-register.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -1918,7 +1918,7 @@
if (!recalc_shares &&
!recalc_price &&
!recalc_value &&
- !gnc_numeric_same (value, calc_value, denom, GNC_HOW_RND_ROUND))
+ !gnc_numeric_same (value, calc_value, denom, GNC_HOW_RND_ROUND_HALF_UP))
{
int choice;
int default_value;
@@ -1989,7 +1989,7 @@
denom = gnc_split_get_amount_denom (split);
- amount = gnc_numeric_div (value, price, denom, GNC_HOW_RND_ROUND);
+ amount = gnc_numeric_div (value, price, denom, GNC_HOW_RND_ROUND_HALF_UP);
cell = gnc_table_layout_get_cell (reg->table->layout, SHRS_CELL);
gnc_price_cell_set_value ((PriceCell *) cell, amount);
@@ -2047,7 +2047,7 @@
denom = gnc_split_get_value_denom (split);
- value = gnc_numeric_mul (price, amount, denom, GNC_HOW_RND_ROUND);
+ value = gnc_numeric_mul (price, amount, denom, GNC_HOW_RND_ROUND_HALF_UP);
gnc_price_cell_set_debt_credit_value ((PriceCell *) debit_cell,
(PriceCell *) credit_cell, value);
Modified: gnucash/trunk/src/register/register-core/pricecell.c
===================================================================
--- gnucash/trunk/src/register/register-core/pricecell.c 2010-10-23 10:00:58 UTC (rev 19694)
+++ gnucash/trunk/src/register/register-core/pricecell.c 2010-10-23 10:38:48 UTC (rev 19695)
@@ -144,7 +144,7 @@
else if (gnc_exp_parser_parse (cell->cell.value, &amount, &err_location))
{
if (cell->fraction > 0)
- amount = gnc_numeric_convert (amount, cell->fraction, GNC_HOW_RND_ROUND);
+ amount = gnc_numeric_convert (amount, cell->fraction, GNC_HOW_RND_ROUND_HALF_UP);
cell->amount = amount;
}
@@ -243,7 +243,7 @@
return FALSE;
if (cell->fraction > 0)
- amount = gnc_numeric_convert (amount, cell->fraction, GNC_HOW_RND_ROUND);
+ amount = gnc_numeric_convert (amount, cell->fraction, GNC_HOW_RND_ROUND_HALF_UP);
cell->amount = amount;
buff = gnc_price_cell_print_value (cell);
More information about the gnucash-changes
mailing list