gpt4 book ai didi

ios - 设置 maximumFractionDigits 不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:50 24 4
gpt4 key购买 nike

我创建了一个如下所示的 NSNumberFormatter,将最大小数位数设置为 2,当我尝试格式化 @"93.650000"时,它的输出类似于 93.650000000000001。我很困惑,这是怎么回事?

编辑:我的问题是,我不知道将 93.65000000000001 输出为字符串,只输出 93.65 作为字符串。

NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
f.minimumFractionDigits = 0;
f.maximumFractionDigits = 2;
NSString *valueString;
for (NSString *valueStr in valueStrArray) {
valueString = valueStr;
if ((NSNull *)valueString == [NSNull null])
valueString = @"0";
NSNumber *value = [f numberFromString:valueString];
[vArray addObject:value];
}

原始值字符串数组:

<__NSCFArray 0x1742e8700>(
95.370000,
93.650000,
76.330000,
73.040000,
70.050000,
69,
66.510000,
57.540000,
53.760000,
<null>
)

格式化的 NSNumber 数组:(lldb) po vArray

<__NSArrayM 0x174c524b0>(
95.37,
93.65000000000001,
76.33,
73.04000000000001,
70.05,
69,
66.51000000000001,
57.54,
53.76,
0
)

最佳答案

您可以尝试使用 NSDecimalNumber 而不是 NSNumber 来更好地处理十进制数。它有一个类方法 +decimalNumberWithString:

关于ios - 设置 maximumFractionDigits 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29205260/

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