Loading xintexpr provides \xinteval and \xintfloateval.
\xintfloateval evaluates numerical expressions. The floating
point precision defaults to 16 decimal digits and can be set by
user. Trigonometry, exponential and logarithms are implemented
up to a maximal precision of 62 decimal digits. \xinteval
computes exactly with integers, fractions, and decimal numbers
or numbers in scientific notation. Note though that multiplying
two floating point numbers will about double the number of
digits, and so on, because the algebra is done exactly. Both
are compatible with expansion-only context. Loading xintexpr
imports automatically various other modules that it depends
upon. Among them: xinttools: utilities such as expandable and
non-expandable loops, xint: macros implementing in particular
the basic operations on arbitrarily long integers, xintbinhex:
conversions between decimal and binary, octal, or hexadecimal
bases for arbitrarily long integers, xintfrac: macros
implementing in particular the basic operations on arbitrarily
large fractions, decimal numbers, or numbers in scientific
notation. Further modules of independent interest include
xintgcd, xintseries and xintcfrac. You can use xintexpr (and
the other components) with LaTeX (via \usepackage) or also with
Plain TeX, OpTeX, or ConTeXt (via \input xintexpr.sty). All the
components are documented in the file xint.pdf, which also
contains the commented source code.

Homepage:
https://ctan.org/pkg/xint
