mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Fix rounding problems in conversions. Fixes bug #454827.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23727 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
8c68c95135
commit
0eda749c3c
@ -2028,7 +2028,7 @@ gnc_pricedb_convert_balance_latest_price(GNCPriceDB *pdb,
|
||||
{
|
||||
balance = gnc_numeric_mul (balance, gnc_price_get_value (price),
|
||||
gnc_commodity_get_fraction (new_currency),
|
||||
GNC_HOW_RND_ROUND_HALF_UP);
|
||||
GNC_HOW_RND_ROUND);
|
||||
gnc_price_unref (price);
|
||||
return balance;
|
||||
}
|
||||
@ -2041,7 +2041,7 @@ gnc_pricedb_convert_balance_latest_price(GNCPriceDB *pdb,
|
||||
{
|
||||
balance = gnc_numeric_div (balance, gnc_price_get_value (price),
|
||||
gnc_commodity_get_fraction (new_currency),
|
||||
GNC_HOW_RND_ROUND_HALF_UP);
|
||||
GNC_HOW_RND_ROUND);
|
||||
gnc_price_unref (price);
|
||||
return balance;
|
||||
}
|
||||
@ -2097,7 +2097,7 @@ gnc_pricedb_convert_balance_latest_price(GNCPriceDB *pdb,
|
||||
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_HALF_UP);
|
||||
GNC_HOW_RND_ROUND);
|
||||
|
||||
gnc_price_list_destroy(price_list);
|
||||
return balance;
|
||||
@ -2125,7 +2125,7 @@ gnc_pricedb_convert_balance_nearest_price(GNCPriceDB *pdb,
|
||||
{
|
||||
balance = gnc_numeric_mul (balance, gnc_price_get_value (price),
|
||||
gnc_commodity_get_fraction (new_currency),
|
||||
GNC_HOW_RND_ROUND_HALF_UP);
|
||||
GNC_HOW_RND_ROUND);
|
||||
gnc_price_unref (price);
|
||||
return balance;
|
||||
}
|
||||
@ -2138,7 +2138,7 @@ gnc_pricedb_convert_balance_nearest_price(GNCPriceDB *pdb,
|
||||
{
|
||||
balance = gnc_numeric_div (balance, gnc_price_get_value (price),
|
||||
gnc_commodity_get_fraction (new_currency),
|
||||
GNC_HOW_RND_ROUND_HALF_UP);
|
||||
GNC_HOW_RND_ROUND);
|
||||
gnc_price_unref (price);
|
||||
return balance;
|
||||
}
|
||||
@ -2178,8 +2178,8 @@ gnc_pricedb_convert_balance_nearest_price(GNCPriceDB *pdb,
|
||||
/* here we need the reciprocal */
|
||||
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_HALF_UP);
|
||||
GNC_DENOM_AUTO,
|
||||
GNC_HOW_DENOM_EXACT | GNC_HOW_RND_NEVER);
|
||||
gnc_price_unref(currency_price);
|
||||
}
|
||||
}
|
||||
@ -2190,12 +2190,12 @@ gnc_pricedb_convert_balance_nearest_price(GNCPriceDB *pdb,
|
||||
(gnc_numeric_zero_p(currency_price_value)));
|
||||
|
||||
balance = gnc_numeric_mul (balance, currency_price_value,
|
||||
gnc_commodity_get_fraction (new_currency),
|
||||
GNC_HOW_RND_ROUND_HALF_UP);
|
||||
GNC_DENOM_AUTO,
|
||||
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_HALF_UP);
|
||||
GNC_HOW_RND_ROUND);
|
||||
|
||||
gnc_price_list_destroy(price_list);
|
||||
return balance;
|
||||
|
Loading…
Reference in New Issue
Block a user