好的,所以我试图通过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,但价值根本没有变化。
我做错了什么?
答案 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;
}