gpt4 book ai didi

Objective-C:如果小数点后有一些值,如何将 double 舍入到小数点后 2 位,否则该值应舍入到小数点后 0 位

转载 作者:行者123 更新时间:2023-12-01 11:28:49 30 4
gpt4 key购买 nike

如何格式化十进制值如下:

/// variable
double value = 9.99999

/// conversion
NSSting* str = [NSString stringWithFormat:@"%.2f", value];

/// result
9.99

但是当值为 9.00000 时它返回 9.00

我应该如何格式化将 9.0000 显示为 9 并将 9.99999 显示为 9.99 的字符串?

最佳答案

你应该看看 NSNumberFormatter。我在 Swift 中添加了代码,但您可以轻松地将其转换为 Objective-C:

let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
formatter.minimumFractionDigits = 0
formatter.maximumFractionDigits = 2
formatter.roundingMode = NSNumberFormatterRoundingMode.RoundFloor
print("\(formatter.stringFromNumber(9.00))")

//Objective-C(归功于 NSNoob)

        NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle: NSNumberFormatterDecimalStyle];
formatter.minimumFractionDigits = 0;
formatter.maximumFractionDigits = 2;
[formatter setRoundingMode:NSNumberFormatterRoundFloor];
NSString* formattedStr = [formatter stringFromNumber:[NSNumber numberWithFloat:9.00]];
NSLog(@"number: %@",formattedStr);

关于Objective-C:如果小数点后有一些值,如何将 double 舍入到小数点后 2 位,否则该值应舍入到小数点后 0 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35129361/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com