如何使用按钮舍入浮点值

时间:2012-06-02 21:40:45

标签: iphone xcode cocoa xcode4

好的,所以我试图通过IBAction将我的值四舍五入到最接近的整数。

So 1.88 -> 2.00 ,  
11.40 -> 12.00 ,   
111.01 -> 112.00, etc.    

-

-(IBAction)roundUp:(id)sender   
{   
    float floatRoundValue=lblTotalRound.text floatValue];
    ceilf(floatRoundValue);
    NSString *stringRoundValue = [NSString stringWithFormat:@"%1.0f", floatRoundValue];
    lblTotalRound.text=stringRoundValue;
}

这就是我得到的。但它仍然低于.5和最接近的整数

(Ex. 1.19 -> 1 , i need 1.19 -> 2.00). 

我已经尝试过%1.2f,但价值根本没有变化。

我做错了什么?

3 个答案:

答案 0 :(得分:2)

ceilf不会修改您传入的值。返回修改后的值。

floatRoundValue = ceilf(floatRoundValue);

答案 1 :(得分:1)

ceilf是一个返回值的函数(https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man3/ceil.3.html),你只需要改变它以下是。

floatRoundValue = ceilf(floatRoundValue);

所以完整的代码在你的情况下会是这样的。

-(IBAction)roundUp:(id)sender   
{   
    float floatRoundValue=lblTotalRound.text floatValue];
    floatRoundValue = ceilf(floatRoundValue);
    NSString *stringRoundValue = [NSString stringWithFormat:@"%1.0f", floatRoundValue];
    lblTotalRound.text=stringRoundValue;
}

答案 2 :(得分:1)

如果您需要之前有$符号:

-(IBAction)roundUp:(id)sender   
{   
    float floatRoundValue=(lblTotalRound.text floatValue]; 
    floatRoundValue = ceilf(floatRoundValue);
    NSString *stringRoundValue = [NSString stringWithFormat:@"$%1.0f", floatRoundValue];
    lblTotalRound.text=stringRoundValue;
}

NSString Class Reference