Banker’s Rounding. What is it good for?

  • Lynn Pettis

    SSC Guru

    Points: 442339

    If you are going to use my name, please make sure you spell correctly.

     

  • Lynn Pettis

    SSC Guru

    Points: 442339

    Also, if you do the research you will also find the banker's round, also called round to even is used in signal processing as well.

    There are numerous articles on the internet that discuss the concept and why it is used.

     

  • Lynn Pettis

    SSC Guru

    Points: 442339

    Also, let's give some context to the whole thing by hopping in the wack machine and revisit the two threads here on SSC.

    https://www.sqlservercentral.com/forums/topic/bankers-rounding

    https://www.sqlservercentral.com/forums/topic/round-to-even-aka-bankers-rounding-the-final-function

  • rlobbe

    SSC Rookie

    Points: 45

    Really... I suggest you go back and lookup what approximate numbers are. Simply do not use these when dealing with fiscal data. problem solved.

  • Sergiy

    SSC Guru

    Points: 109778

    Lynn Pettis wrote:

    If you are going to use my name, please make sure you spell correctly.

    sorry about that. Supposed to be copy-paste, something went wrong.

    Corrected the article. Should be updated soon.

  • Sergiy

    SSC Guru

    Points: 109778

    rlobbe wrote:

    Really... I suggest you go back and lookup what approximate numbers are. Simply do not use these when dealing with fiscal data. problem solved.

    dont know what to say here.

    Ok. What are those "approximate numbers"?

     

    • This reply was modified 1 month, 3 weeks ago by  Sergiy.
  • ConnieOI

    SSC-Addicted

    Points: 458

    I didn't know about 'bankers round' / 'round to even' at all, so I'm glad that the article has introduced it to me. Thank you.

  • Sergiy

    SSC Guru

    Points: 109778

    Lynn Pettis wrote:

    Also, if you do the research you will also find the banker's round, also called round to even is used in signal processing as well.

    There are numerous articles on the internet that discuss the concept and why it is used.

    Lynn, I don't need to do research on internet for this matter.

    I've  been studying signal processing in university for 6 years, Kotelnikov's theorem (you might know it under the names of Nyquist and Shannon) was an essential part of the curriculum, I've been developing signal converters for sound devices and transmitting devices for fibre-optical lines. I went through tonnes of fundamental books on the subject, passed tens of exams, and probably would complete my phd on the subject, if the country together with its institutions would not go busted in 90's.

    And not a single time in any credible scientific source I would find a suggestion of using banker's rounding for any part of signal processing. It was always floating point computations all the way through, and normal rounding everywhere where it was needed.

    That's probably why SKUD bet Patriot. (Just kidding. SKUD used analogue computing and did not give a s..t about any rounding 🙂 )

  • kstone-869270

    SSC Rookie

    Points: 36

    You are ignoring the reason "banker's rounding" exists in the first place. In most cases the handing of financial calculations (including rounding) is regulated by law or contract. It's not a matter of satisfying "Big Daddy", it's a matter of following the rules laid out. In the early days of computing some less scrupulous financial institutions always used the rounding in their favor. A similar situation existed when payroll was computerized.

  • sharon.sparks 80706

    Grasshopper

    Points: 21

    Had to laugh about Big Daddy, but in my case it's Big Mama.  Spent most of my weekend "fixing" some calculations that were mathematically correct but not for Big Mama.  Luckily, I came up with a solution that is both mathematically correct and makes the numbers match 🙂

  • This was removed by the editor as SPAM

  • Jeff Moden

    SSC Guru

    Points: 996812

    <quote>From the Last Sentence of the Conclusion in the Article...

    To maintain the best precision of the final result all intermediate calculations must be performed on numbers in floating point formats, and the rounding must be performed (if necessary) only on the final data set.

    </quote>

    Lordy, isn't that the truth.  Try getting your mortgage calculations approved by Granny and her 4 function calculator (or spreadsheet) unless you do it that way. 😀  Just like milliseconds, pennies matter.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".
    "If "pre-optimization" is the root of all evil, then what does the resulting no optimization lead to?"

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • skeleton567

    SSCertifiable

    Points: 5096

    This is a very good article.  I shared it with another discussion group regarding the very popular Quicken personal financial package which has for years suffered from two bad design decisions, one of which concerns the effects of rounding.

    One is the fiasco caused by their Y2K 'work-around' for for 2-digit years in the QIF inport/export file format, and the other is their decision that investment accounts can and do share price history in which their own software encourages price rounding on the same security in different accounts.

    It is interesting that many of the responses are reminiscent of the old Hillary comment:  "What difference does it make?"

     

     

    Rick

    The only thing worse than being an influencer
    is believing one.

  • Jeff Moden

    SSC Guru

    Points: 996812

    skeleton567 wrote:

    One is the fiasco caused by their Y2K 'work-around' for for 2-digit years in the QIF inport/export file format...

    Good lord... I had to work through all of that with Quicken 20 years ago and they still haven't fixed it correctly?

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".
    "If "pre-optimization" is the root of all evil, then what does the resulting no optimization lead to?"

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Sergiy

    SSC Guru

    Points: 109778

    Jeff Moden wrote:

    <quote>From the Last Sentence of the Conclusion in the Article...

    To maintain the best precision of the final result all intermediate calculations must be performed on numbers in floating point formats, and the rounding must be performed (if necessary) only on the final data set.

    </quote>

    Lordy, isn't that the truth.  Try getting your mortgage calculations approved by Granny and her 4 function calculator (or spreadsheet) unless you do it that way. 😀  Just like milliseconds, pennies matter.

    That is actually true.

    We've just been there, several days ago.

    i posted my version of mortgage calculator which uses only floating point calculations inside of the function: https://www.sqlservercentral.com/forums/topic/mortgage-amortization-table/page/7/#post-3760769

    the amounts to pay and balances for each period - true, they have to be rounded, because it's actual monetary amounts which must change hands on specific dates. Therefore they cannot be taken as "intermediate calculations", they are the numbers reported to the users, they are in the "resulting data set".

    And don't forget about the favourite word of all accountants - adjustments.

    no matter how hard we try with all sorts of rounding, we cannot equally distribute a hundred between 3 periods/accounts/etc. it will always be 33, 33 and the last one adjusted to 34 to make the total right.

    Same happens to mortgage calculators: the last period contains the adjustment to compensate for deviations accumulated in all previous periods. Our task is only not to let those balances to deviate too far from the correct numbers calculated with floating point math, so the last adjustment would not look too bad.

    actually, if calculated correctly, monthly payments must vary from month to month, to keep the balances near the straight line between the starting point of full amount and zero balance at the end. But it would be slightly inconvenient and impractical. So, I found, banks round the payments up, usually to whole dollar amounts, and customers don't complain because it slightly reduces the accumulated interest over the duration of mortgage. And nobody worries about those pennies.

Viewing 15 posts - 1 through 15 (of 21 total)

You must be logged in to reply to this topic. Login to reply