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

时间:2012-02-16 07:01:21

标签: iphone objective-c ios cocoa ipad

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

3 个答案:

答案 0 :(得分: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;
}

收率:

  

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

答案 1 :(得分:5)

试试这个例子

float t = 25.55;
NSLog(@"%.1f", t);

如果设置%.2f则显示25.5

答案 2 :(得分:1)

应该是这样的

sudo代码

将数字转换为字符串。

找到“。”在字符串中。

从开始到“。”创建子字符串。位置+1