money_put::do_put contains:
|
for (_Exp = 0; 1e35 <= _Val && _Exp < 5000; _Exp += 10) {
|
|
_Val /= 1e10; // drop 10 zeros before decimal point
|
|
}
|
Like almost all of our pre-charconv floating-point formatting, I believe that this is incorrect - dividing by a power of 10 isn't an exact operation.
This probably isn't a significant issue in practice (as few people have more than 10^35 units of money, although one can dream).
money_put::do_putcontains:STL/stl/inc/xlocmon
Lines 676 to 678 in f0f0b55
Like almost all of our pre-charconv floating-point formatting, I believe that this is incorrect - dividing by a power of 10 isn't an exact operation.
This probably isn't a significant issue in practice (as few people have more than 10^35 units of money, although one can dream).