You are viewing a single thread.
View all comments View context
15 points

One of my lecturers mentioned a way they would get around this was to store all values as ints and then append a . two character before the final one.

permalink
report
parent
reply
15 points

Yeah, this works especially well for currencies (effectively doing all calculations in cents/pennies), as you do need perfect precision throughout the calculations, but the final results gets rounded to two-digit-precision anyways.

permalink
report
parent
reply
-1 points

quite a horrible hack, most modern languages have decimal type that handles floating rounding. And if not, you should just use rounding functions to two digits with currency.

permalink
report
parent
reply
21 points
*

Not sure what financing applications you develop. But what you suggest wouldn’t pass a code review in any financial-related project I saw.

Using integers for currency-related calculations and formatting the output is no dirty hack, it’s industry standard because floating-point arithmetic is, on contemporary hardware, never precise (can’t be, see https://en.wikipedia.org/wiki/IEEE_754 ) whereas integer arithmetic (or integers used to represent fixed-point arithmetic) always has the same level of precision across all the range it can represent. You typically don’t want to round the numbers you work with, you need to round the result ;-) .

permalink
report
parent
reply
2 points

Had to think about it, but yeah, I guess, you can’t do division or non-integer multiplication with integer cents, as standard integer math always rounds downwards and it forces you to round after every step.
You could convert to a float for the division/multiplication and you do get more efficient addition/subtraction as well as simpler de-/serialization, but in most situations, it’s probably less trouble to use decimals.

permalink
report
parent
reply
-5 points

Fixed point notation. Before floats were invented, that was the standard way of doing it. You needed to keep your equation within certain boundaries.

permalink
report
parent
reply

Programmer Humor

!programmer_humor@programming.dev

Create post

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

Community stats

  • 3.4K

    Monthly active users

  • 1K

    Posts

  • 38K

    Comments