【问题标题】:What Is "\t%.10g\n"什么是“\t%.10g\n”
【发布时间】:2009-10-12 12:57:15
【问题描述】:

我是 Bison 的新手,但在 C/C++ 中没有,在这个开发和正则表达式的时候,我从未听说过这样的东西,只有 \n 用于新行,但我想知道什么是\t%.10g的解释,代码里是这样的:

line:     '\n'
        | exp '\n'  { printf ("\t%.10g\n", $1); }
;

最好的问候。

【问题讨论】:

    标签: c printf bison


    【解决方案1】:

    它的意思是“打印一个制表符 (\t) 后跟一个小数点后 10 位的浮点数,根据数量级 (%.10g) 采用科学或定点表示法,然后是换行符 (\ n)"。

    【讨论】:

      【解决方案2】:

      查看printf reference 以解码模式:

      g 使用较短的 %e%f

      e 使用 e 字符的科学记数法(尾数/指数)

      f十进制浮点数

      因此,%.10g 打印一个十进制数,有效数字为十位。

      【讨论】:

      • 其实%g和[%e or %f]有细微的差别:精度指定有效位数,对于[%e or %f]指定有效位数小数点后的数字。
      【解决方案3】:

      这不是一个正则表达式,而是一个 printf 格式规范:打印一个制表符,后跟一个浮点数,小数点后有 10 位数字,可以是 %f(浮点表示法)方式或 %e(科学表示法)方式,以任何方式为准更短,并以换行符结尾。

      man printf
      

      【讨论】:

        猜你喜欢
        • 2012-11-17
        • 1970-01-01
        • 2021-08-30
        • 2012-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-12
        • 1970-01-01
        相关资源
        最近更新 更多