c/c++语言开发共享为什么printf没有使用科学记数法?

我知道这是一个常见的问题。 但是我找不到一个可靠的直接答案。

16 ^ 54 = 1.0531229167e+65 (this is the result I want) 

当我使用pow(16,54) ,我得到:

105312291668557186697918027683670432318895095400549111254310977536.0

代码如下:

 #include  #include  #include  void main(){ double public; double a = 16; double b = 54; public = (pow(a,b)); printf("%.21fn", public); } 

执行代码:

gcc main.c -lm

我做错了什么?

    我究竟做错了什么?

    几件事:

    以下是修复程序的方法:

     #include  #include  #include  int main(){ double p; double a = 16; double b = 54; p = (pow(a,b)); printf("%.10en", p); return 0; } 

    在ideone上演示。

    你有没有尝试过:

     printf("%en", public); 

    %e说明符用于科学记数法,如文档中所述

    如果您需要科学记数法,则需要使用%e 格式说明符 :

     printf("%en", public); ^^ 

    此外, public是C ++中的关键字 ,因此,如果此代码需要可移植,最好避免使用该关键字和任何其他关键字

    需要了解更多c/c++开发分享为什么printf没有使用科学记数法?,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享为什么printf没有使用科学记数法?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/979413.html

      (0)
      上一篇 2021年12月12日
      下一篇 2021年12月12日

      精彩推荐