this makes math unreliable because anything that could be a small number might return a string instead of a number, which then breaks everything relying on it.

a workaround is to run your result through mu(round, [num], 9), since it never prints scientific notation, but this is one of the worst bugs when it comes to writing complex formulas.

seems like there is a separate number → string conversion within the formula and when stringifying the output of a formula.

sidenote, a similar thing happens with dates:

$dp()$ => 2023y10M15d10h0m0s
$dp() + ""$ => 1.69735654E9 /* I suppose because + tries to convert to number first */
$tc(cut, dp(), 0, 99)$ => 2023-10-15T10:00:00.000+00:00

though the ISO format output can be useful sometimes, so maybe don’t axe it completely :)

Can not, when you use dp() in a number context it will use it as a number of seconds since epoch, so you can add seconds to it, you can still get a date by using dp(dp() + 5) for example