相关疑难解决方法(0)

避免在printf()中尾随零

我一直绊倒printf()函数系列的格式说明符.我想要的是能够在小数点后打印一个最大给定位数的double(或float).如果我使用:

printf("%1.3f", 359.01335);
printf("%1.3f", 359.00999);
Run Code Online (Sandbox Code Playgroud)

我明白了

359.013
359.010
Run Code Online (Sandbox Code Playgroud)

而不是期望的

359.013
359.01
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?

c printf

105
推荐指数
4
解决办法
11万
查看次数

舍入双精度值到2位小数

我有一个双倍值22.368511我想将它舍入到2位小数.即它应该返回22.37

我怎样才能做到这一点?

iphone cocoa-touch objective-c

87
推荐指数
7
解决办法
10万
查看次数

限制一个双精度到两位小数,不带尾随零

我读了这个和那个.我想要这个:

1.4324 =>"1.43"
9.4000 =>"9.4"
43.000 =>"43"

9.4 =>"9.40"(错误)
43.000 =>"43.00"(错误)

在这两个问题中,答案都指向了NSNumberFormatter.所以应该很容易实现,但不适合我.

- (void)viewDidLoad {
    [super viewDidLoad];
    UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 20)];

    NSNumberFormatter *doubleValueWithMaxTwoDecimalPlaces = [[NSNumberFormatter alloc] init];
    [doubleValueWithMaxTwoDecimalPlaces setNumberStyle:NSNumberFormatterDecimalStyle];
    [doubleValueWithMaxTwoDecimalPlaces setPaddingPosition:NSNumberFormatterPadAfterSuffix];
    [doubleValueWithMaxTwoDecimalPlaces setFormatWidth:2];

    NSNumber *myValue = [NSNumber numberWithDouble:0.01234];
    //NSNumber *myValue = [NSNumber numberWithDouble:0.1];

    myLabel.text = [doubleValueWithMaxTwoDecimalPlaces stringFromNumber:myValue];

    [self.view addSubview:myLabel];
    [myLabel release];
    myLabel = nil;
    [doubleValueWithMaxTwoDecimalPlaces release];
    doubleValueWithMaxTwoDecimalPlaces = nil;
}
Run Code Online (Sandbox Code Playgroud)

我也试过了

NSString *resultString = [NSString stringWithFormat: @"%.2lf", [myValue doubleValue]]; …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch decimal objective-c nsnumberformatter

37
推荐指数
1
解决办法
2万
查看次数

在Objective c中显示两位小数?

可能重复:
将一个小数限制为两位小数

我想在Objective C中以特定格式显示数字.这里,我只想用两个精度显示数字.

假设我的数字像25.5;

然后我想要下面给出的节目号码.

25.5 => 25.50

iphone objective-c ios5

-2
推荐指数
1
解决办法
1906
查看次数