gpt4 book ai didi

iphone - 如果数字是整数,则省略分数格式化数字的优雅方法

转载 作者:行者123 更新时间:2023-12-03 20:41:32 25 4
gpt4 key购买 nike

我正在格式化 float ,现在我有 %0.2f 格式化程序,但如果 float 是偶数,我想省略 .00。

当然,我可以想到用字符串替换 .00,但这很粗糙。

我发现NSNumber的描述也做了类似的事情:

NSNumber *number = [NSNumber numberWithFloat:_paragraphSpacing];
[retString appendFormat:@"margin-bottom:%@px;", number];

这不会悬停,不限制逗号后的数字。如果号码是 1234.56789 那么描述将输出该号码。

所以我的问题是,是否有一种同样简单的方法(可能无需创建 NSNumber 对象)来实现此结果?

最佳答案

由于 float 并不精确,因此无法保证您的数字实际上是整数。但是,您可以检查它是否在距整数值相当小的距离内。当然,您不需要为此使用 NSNumber。 (一般来说,NSNumber 不用于格式化,其目的是使用 Objective-C 对象表示原始 C 类型,无论是整型还是浮点类型。)

#include <math.h>

- (NSString *)stringFromFloat:(float)f
{
const float eps = 1.0e-6;
if (abs(round(f) - f) < eps) {
// assume an integer
return [NSString stringWithFormat:@"margin-bottom: %.0fpx", round(f)];
} else {
// assume a real number
return [NSString stringWithFormat:@"margin-bottom: %.2fpx", f];
}
}

关于iphone - 如果数字是整数,则省略分数格式化数字的优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14013888/

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