c/c++语言开发共享%g如何舍入浮点数?

虽然我在printf()使用%g作为格式说明符,但有时它会在小数点后向上舍入到2个位置,有时会达到3个位置,有时会达到4个位置……它是如何做到的?

实际上我们应该使用%g而不是%f%e作为浮点数?

    %g格式说明符像%f那样进行舍入,但如果%f将导致4.234000 ,则%g将省略尾随零并打印4.234

    当输出格式中最有意义的是某些数字打印为12345.6 ,应使用%g ,而略大的数字则打印为1.235e04

    %g在使用%e%f之间自动“翻转”,具体取决于值,试图以与手持式计算器相同的方式显示尽可能多的信息。 此外,不包括%g尾随零和小数点。

    对于%f转换,“precision”是小数点后的位数 ,而对于%g它是有效位数。
    两种情况下的默认精度均为6。

    来自printf手册 :

    “double参数以f或e格式转换(或G转换为F或E)。精度指定有效位数。如果精度丢失,则给出6位数;如果精度为零,则对其进行处理如果样式e在转换时的指数小于-4或大于或等于精度时使用。尾随零从结果的小数部分中删除;小数点仅在后面跟随时出现至少一位数。“

    我不是指“RTFM”,但您可能会在手册中找到有关控制精度和长度的内容。

      以上就是c/c++开发分享%g如何舍入浮点数?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

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

      ctvol管理联系方式QQ:251552304

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

      (0)
      上一篇 2021年1月3日
      下一篇 2021年1月3日

      精彩推荐