输出小数点前不为零的浮点数

Output A Float Without Zero Before Decimal Point

我想知道如何让一个浮点数具有一个零后跟一个小数后跟这样的数字:

0.45

...像这样去掉小数点前的零:

.45

在 NSString 中使用 [NSString stringWithFormat:] 方法使用 Objective C.

在使用 stringWithFormat:%f 格式化浮点值时,您不能直接删除前导 0。您必须自己将其从结果中删除:

NSString *result = [NSString stringWithFormat:@"%.2f", 0.45];
if ([result hasPrefix:@"0."]) {
    result = [result substringFromIndex:1];
}

但更好的解决方案是使用 NSNumberFormatter。将 minimumIntegerDigits 设置为 0 以避免前导 0.

NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
fmt.numberStyle = NSNumberFormatterDecimalStyle;
fmt.minimumInterDigits = 0;
NSString *result = [fmt stringFromNumber:@(0.45)];

这样做的好处是可以根据用户的语言环境正确格式化结果(除了删除前导 0)。

最好避免删除前导 0。输出可能会使用户感到困惑。