0

わかりましたので、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 を試してみましたが、値はまったく変わりません。

私は何を間違っていますか?

4

3 に答える 3

2

ceilf渡された値を変更しません。変更された値を返します。

floatRoundValue = ceilf(floatRoundValue);
于 2012-06-02T21:44:01.327 に答える
1

の前に $ 記号が必要な場合:

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

NSString クラス リファレンス

于 2012-06-02T22:50:50.390 に答える
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;
}
于 2012-06-02T21:47:56.877 に答える