代码之家  ›  专栏  ›  技术社区  ›  4thSpace wkw

为什么Fabs返回整数?

  •  2
  • 4thSpace wkw  · 技术社区  · 14 年前

    当我执行以下操作时,输出为整数值:

    double myvar = fabs(-5.01);
    NSLog(@"%.f", myvar);
    

    应该是5.01吗?

    3 回复  |  直到 14 年前
        1
  •  11
  •   dave    14 年前

    这个 . (后面没有数字)在 "%.f" 表示精度为0的格式(对于浮点数,表示舍入到最接近的整数)。您可能只想要“%f”

    http://www.cplusplus.com/reference/clibrary/cstdio/printf/ 对于格式说明符的描述(我收集 NSLog 格式说明符是 printf 一)

        2
  •  0
  •   Matt Williamson    14 年前

    输出是什么?你试过了吗 @"%f" ?但是是的。它应该返回5.01。不过,由于它是浮点型的,所以精度可能会降低。

        3
  •  0
  •   Suresh Varma    14 年前

    请使用

    double myvar = fabs(-5.01);
    NSLog(@"%.2f", myvar);
    

    AS %.f 意味着之后 . 没有值必须存在,因此如果需要2个小数点,则需要写入 %.2f

    快乐编码…