Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,因此它是on-topic,用于堆栈溢出。
2年前关闭。
我正在尝试执行以下操作:
我得到的结果是'inf',实际结果是:3.4544e-77,这是一个非常小的数字,我猜想我可以得到'0'而不是'inf'。
我需要实际结果,有没有办法提高精度?我也试过很久没有成功。
我正在用Visual Studio在C上编程。
想改善这个问题吗? Update the question,因此它是on-topic,用于堆栈溢出。
2年前关闭。
我正在尝试执行以下操作:
double exponent = pow(2.0, -254)
我得到的结果是'inf',实际结果是:3.4544e-77,这是一个非常小的数字,我猜想我可以得到'0'而不是'inf'。
我需要实际结果,有没有办法提高精度?我也试过很久没有成功。
我正在用Visual Studio在C上编程。
最佳答案
在C中,您可以用scalb
乘以2的幂,因此scalb(1, -254)
是2−254。您还可以在十六进制浮点常量中使用2的幂。 2−254是0x1p-254
。
但是,pow(2.0, -254)
不会返回无穷大。如果您尝试打印返回值,并且打印了“ inf”,则源代码中有错误。
关于c - 为小数增加 double 变量的精度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49242639/
10-14 04:11