josdejong/mathjs

Functions do not recon with `config.number` when converting a string into a numeric type

Open

#3,206 opened on May 29, 2024

View on GitHub
 (0 comments) (0 reactions) (0 assignees)JavaScript (1,298 forks)batch import
bughelp wanted

Repository metrics

Stars
 (13,832 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

It's a bit of an edge case, but for example:

math.config({number: 'BigNumber'})
math.add('2', '3')
// results in a number with value 5, but should be a BigNumber with value 5

The reason is that functions like add do not have a signature like add(string, string). Therefore, automatic conversion kicks in. The automatic conversion finds a conversion from string -> number that fits the bill and uses that, without reconing with the configured config.number. I'm not sure how a proper solution to fix this would look like, since the type conversions are static 🤔.

Contributor guide