Hi Thomas:<div><br></div><div>Actually that was the function that I was looking at and referring to. I tried looking at it but I'll be honest, I am struggling trying to figure out just what exactly it is doing.</div><div>
<br></div><div>I see it takes in a String value currency, which I am assuming is the constant defined somewhere for the currency denomination the user is using, then it integer for precision and a boolean to for thousands. So I got all that down. :)</div>
<div><br></div><div>I am guessing that you are controlling the precision of accounts/transactions past two for things like stock prices and transactions right? So since I am not implementing this type I can safely "ignore" that, but need to keep it in the back of my mind for future reference. </div>
<div><br></div><div>It looks like the meat of the actual function starts with the on line 145:</div><div>#if 1</div><div><br></div><div>and runs through line 161:</div><div>mpz_class right = (valueRef() - mpq_class(left)) * denom;</div>
<div><br></div><div>I am lost looking at this stuff, the rest of the function looks like it is just string manipulation which is easy enough to replicate.</div><div><br></div><div>What is a mpz_class? What is actually going on with lines 152, 154, 160 and 161?</div>
<div><br></div><div>Thanks for the help Thomas!</div><div><br></div><div>-Eric</div><div><br><div class="gmail_quote">On Fri, Oct 5, 2012 at 1:15 PM, Thomas Baumgart <span dir="ltr"><<a href="mailto:thb@net-bembel.de" target="_blank">thb@net-bembel.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Eric,<br>
<div><div class="h5"><br>
On Thursday 04 October 2012 12:05:05 Eric Bonney wrote:<br>
<br>
> So after working with Martin and doing some testing of a build trying to<br>
> use EURO instead of USD a number of poor design choices have come to light.<br>
> I am trying to work through them and hopefully make the app more<br>
> international friendly in the process.<br>
><br>
> One of the choices that I made early on was to do all of my calculations<br>
> based off the balanceFormatted column for accounts and splits. Well this<br>
> was all fine when all I was dealing with was USD based files, but it fails<br>
> miserably when trying to use something else.<br>
><br>
> So I know that the balance column is a fraction which I am assuming is the<br>
> greatest common denominator of the actually value over 100??<br>
><br>
> Example: value is $150.00 so the balance column is the GCD of 150/100?<br>
><br>
> So, if that is correct, I believe I have found routines to help me<br>
> calculate the GCD properly, but my question is how do you then later take<br>
> this fraction and inflate it back to the correct value? I am trying to get<br>
> away from having my application rely on the balanceFormatted column as much<br>
> as possible because it is causing me headaches and if the balance column is<br>
> the best and more accurate column to be using then I want to.<br>
><br>
> I have tried to look at the code to see where this but I can't see it. I<br>
> think I recall in the past when I asked about this, that it was actually<br>
> being handled by an outside library right? Does anyone have any suggestions<br>
> or pointers as to where I can look so that I can move my application into a<br>
> better design to work more closely the way KMM works with the data?<br>
<br>
</div></div>That is actually handled using the MyMoneyMoney::formatMoney() method which<br>
you can find in kmymoney/mymoney/mymoneymoney.cpp. It nowadays relies on<br>
conversion routines found in libgmp. Alkimia (the outside library you talk<br>
about) is basically a C++ wrapper around the libgmp functionality with some<br>
extra features.<br>
<br>
Hope that helps.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
<br>
Regards<br>
<br>
Thomas Baumgart<br>
<br>
GPG-FP: E55E D592 F45F 116B 8429   4F99 9C59 DB40 B75D D3BA<br>
-------------------------------------------------------------<br>
The beauty of standards is that there are so many to choose from.<br>
-------------------------------------------------------------<br>
</font></span><br>_______________________________________________<br>
KMyMoney-devel mailing list<br>
<a href="mailto:KMyMoney-devel@kde.org">KMyMoney-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kmymoney-devel" target="_blank">https://mail.kde.org/mailman/listinfo/kmymoney-devel</a><br>
<br></blockquote></div><br></div>