做一個人知道是否有一個方法,以便在紀念之後舍入一個float浮點數。四捨五入的小數點浮點數
例子:
10.28000 -> 10.3
13.97000 -> 14.0
5.41000 -> 5.4
非常感謝!
問候, 塞巴斯蒂安;)
做一個人知道是否有一個方法,以便在紀念之後舍入一個float浮點數。四捨五入的小數點浮點數
例子:
10.28000 -> 10.3
13.97000 -> 14.0
5.41000 -> 5.4
非常感謝!
問候, 塞巴斯蒂安;)
使用NSNumberFormatter創建一個具有指定派系數字的字符串。
float num = 10.28000;
formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:1];
NSNumber *value = [NSNumber numberWithFloat:num];
NSString *newNumString = [formatter stringFromNumber:value];
試試這個:
float aFloatValue = 3.1415926;
NSString *formatted = [NSString stringWithFormat:@"%01.1f", aFloatValue];
NSLog(@"Formatted: %@", formatted);
把它看成是一個很好的舊sprintf
。
問題是關於浮點數的舍入,而不是格式化爲字符串。 – Tutankhamen
,你也可以嘗試
float num = 10.28000
float result = (roundf(num * 10.0))/10.0;
(乘以10,那麼圓,然後除以10再一次),這樣的劃分是一個浮動,而不是 不要忘記.0一個整數,這將圓再次
嘗試了這一點:
float myFloat = 10.4246f;
myFloat = ((int) ((myFloat * 100) + 5))/100.0f;
float fval = 1.54f;
float nfval = ceilf(fval * 10.0f + 0.5f)/10.0f;
純可可方式與NSRoundPlain行爲:
- (NSDecimalNumber *)decimalNumberForFloat:(float)f_
{
NSNumber *number = [NSNumber numberWithFloat:f_];
NSDecimal decimal = [number decimalValue];
NSDecimalNumber *originalDecimalNumber = [NSDecimalNumber decimalNumberWithDecimal:decimal];
NSDecimalNumberHandler *roundingBehavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain
scale:0
raiseOnExactness:NO
raiseOnOverflow:NO
raiseOnUnderflow:NO
raiseOnDivideByZero:NO];
return [originalDecimalNumber decimalNumberByRoundingAccordingToBehavior:roundingBehavior];
}
因爲NSDecimalNumber是NSNumber的的一個子類,以獲得基本float呼叫 - [NSDecimalNumber的floatValue]
...和NSNumberFormatter輸出而不是字符串? – Cyrille
它會給你一個nsnumber。您可以獲取字符串或浮點值。 –
然後你需要一個字符串在某處顯示。 – Cyrille