-2
let display = '5+10.10';
let numbers = display.match(/(\d+\.?\d*|\.\d+)/g).map(a => parseInt(a));
console.log(numbers)//returns [5, 10]

when I don't use parseInt:


let display = '5+10.10';
let numbers = display.match(/(\d+\.?\d*|\.\d+)/g);
console.log(numbers)//returns ["5", "10.10"]

I need the array item's as an number with decimal rather than a string.

  • 3
    Do you know what an interger / int is? It is a whole number, no matter what. If you want floating point numbers use `parseFloat` instead. – luk2302 Aug 04 '21 at 08:22
  • `let numbers = display.match(/(\d+\.?\d*|\.\d+)/g).map(Number);` – Hao Wu Aug 04 '21 at 08:24

2 Answers2

1
let numbers = display.match(/(\d+\.?\d*|\.\d+)/g).map(Number);

you can use the broader Number here, because an integer by definition will never have a decimal part.

thinkgruen
  • 929
  • 10
  • 15
0

parseInt converts to Integer. You want parseFloat :

let display = '5+10.10';
let numbers = display.match(/(\d+\.?\d*|\.\d+)/g).map(a => parseFloat(a));
console.log(numbers)
Tushar Shahi
  • 16,452
  • 1
  • 18
  • 39