Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? 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