我正在尝试反转长双精度数的指数。
假设 x = 3.5e1356。我希望 x 为 3.5e-1356。
我有这个代码:
long double x = 3.5e1356L;
int exponent;
long double fraction = frexpl(x, &exponent);
// recreate number with an inverted exponent
long double newNumber = ldexpl(fraction, -exponent);
在这段代码之后,newNumber
是1.14732677619641872902e-1357
这与原始数字无关。
我错过了什么?