Mathematical problem

Math returns not correct
this is a fragment of code that fails me:

 let n = Math.floor(change / cashValues[i]);
          // if cid hasn't got enough bills
          while (n * cashValues[i] > a[1]) {
            n--;  // n - -; just for visual clarity in forum
          let takeAway = n * cashValues[i]
          console.log(`${change} - ${takeAway}`)
          console.log(change - takeAway)

so the problem is :

console.log(`${change} - ${takeAway}`)

returns 96.74 and 60 as it should, how ever:

console.log(change - takeAway)

returns 36.739999999999995 and I am almost sure that it should result in 36.74.
Could anyone point out what is going on here?

Challenge: Cash Register

Link to the challenge:

OK I got a deeper problem, while waiting for replies I decided to take CID array and sum it’s values and it resulted in same busted math: 335.40999999999997

function checkCashRegister(price, cash, cid) {
  let bank = => i[1]).reduce((a,b) => a + b);
checkCashRegister(3.26, 100, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]])

this is all what is in the function and it still returns incorrect math.

Floating point numbers (decimal) in computers hand rounding. There are many ways to account for this. Personally, I like using an integer number of cents.

I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (’).

Sorry for the mess and thank you ilenia,
I am going to do my best to format post this way from now on.

Thank you JeremyLT,
at least now I know what to look for.

I always suggest this video to understand what’s going on here

Thank you for the link, really good and useful content…

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.