为什么fabs返回整数?

时间:2010-09-23 03:39:36

标签: iphone objective-c ios4

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

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

应该是5.01吗?

3 个答案:

答案 0 :(得分:11)

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

有关格式说明符的说明,请参阅http://www.cplusplus.com/reference/clibrary/cstdio/printf/(我收集NSLog格式说明符是printf个的超集)

答案 1 :(得分:0)

输出是什么?你试过@"%f"吗?但是,是的。它应该返回5.01。但是,由于它是浮点数,因此精度可能会被关闭。

答案 2 :(得分:0)

请使用

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

由于%.f表示在.之后必须没有值,所以如果你想要2个小数点,你需要写%.2f

快乐的编码......