Cocoa如何使用一个十进制值显示浮点值而不舍入

coc*_*oob -1 iphone cocoa objective-c ipad ios

我有一个浮点值,但是当我需要向用户表示时,我需要它显示到一个小数位,而不是四舍五入.所以基本上我需要截断到最多一个小数位.例如95.56 - > 95.5

jus*_*tin 6

NSNumberFormatter 会为你做这件事.

-setMaximumFractionDigits: -setRoundingMode:

更新

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
  @autoreleasepool {
    NSNumberFormatter * nf = [[NSNumberFormatter new] autorelease];
    [nf setMaximumFractionDigits:1];
    [nf setRoundingMode:NSNumberFormatterRoundFloor];
    NSLog(@"The number is '%@'", [nf stringFromNumber:[NSNumber numberWithDouble:95.56]]);
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

产量:

2012-02-16 02:39:49.799 NumberFormatter [14592:903]这个数字是'95 .5'


Hir*_*ren 5

试试这个例子

float t = 25.55;
NSLog(@"%.1f", t);
Run Code Online (Sandbox Code Playgroud)

它显示25.5如果你设置%.2f你得到25.55