-1

I'm trying to change a number into a fixed notation, for example when the number is over 1000, change the number into x.x K, and so far everything i have tried has failed. You can see my code if you go to this link: https://jsfiddle.net/Blackcatgame77/vnzewfr1/7/ . I have a function ready to change my number into notation, here is the function

function formatter(cash) {
     if (cash >= 1000000000) {
        return (cash / 1000000000).toFixed(1).replace(/\.0$/, '') + 'B';
     }
     if (cash >= 1000000) {
        return (cash / 1000000).toFixed(1).replace(/\.0$/, '') + 'M';
     }
     if (cash >= 1000) {
        return (cash / 1000).toFixed(1).replace(/\.0$/, '') + 'K';
     }
}

I'm not sure how to use this function to make the numbers change into notation when they reach 1000, 1000000, or 1000000000. Can someone tell me how i could do this?

  • If you just add `return cash` at the end of that function, you can just call formatter all the time. – samanime Nov 06 '21 at 23:23
  • I added `return cash` to the end of the function, and put it in my draw function which is called repeatedly, but it did not convert cash to notation. What do you think i am doing wrong? – BlackcatGame77 Nov 06 '21 at 23:27
  • @BlackcatGame77 What is the result you want and what you are getting. Give sample outputs (try console.log() in some palces) – ABDULLOKH MUKHAMMADJONOV Nov 07 '21 at 20:17

1 Answers1

0

I managed to figure it out, and here's how i did it. I defined a second variable from the currency called cashE, and then changed the variable being displayed from cash to cashE. To notate cash, i used this code:

  let cashE = cash;
  if (cash >= 1e+3) {
    cashE = (cash / 1e+3).toFixed(1).replace(/\.0$/, '') + 'K';
  }
  if (cash >= 1e+6) {
    cashE = (cash / 1e+6).toFixed(1).replace(/\.0$/, '') + 'M';
  }
  if (cash >= 1e+9) {
    cashE = (cash / 1e+9).toFixed(1).replace(/\.0$/, '') + 'B';
  }

I hope this helps anyone who was wondering how to do this :)