菜鸟教程小白 发表于 2022-12-13 06:04:29

ios - 设置 maximumFractionDigits 不起作用


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

<p>编辑:
我的问题是,我不输出 93.65000000000001 作为字符串,只输出 93.65 作为字符串。 </p>

<pre><code>NSNumberFormatter *f = [ init];
;
f.minimumFractionDigits = 0;
f.maximumFractionDigits = 2;
NSString *valueString;
for (NSString *valueStr in valueStrArray) {
    valueString = valueStr;
    if ((NSNull *)valueString == )
      valueString = @&#34;0&#34;;
    NSNumber *value = ;
    ;
}
</code></pre>

<p>原值字符串数组:</p>

<pre><code>&lt;__NSCFArray 0x1742e8700&gt;(
95.370000,
93.650000,
76.330000,
73.040000,
70.050000,
69,
66.510000,
57.540000,
53.760000,
&lt;null&gt;
)
</code></pre>

<p>格式化的 NSNumber 数组:
(lldb) po vArray</p>

<pre><code>&lt;__NSArrayM 0x174c524b0&gt;(
95.37,
93.65000000000001,
76.33,
73.04000000000001,
70.05,
69,
66.51000000000001,
57.54,
53.76,
0
)
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以尝试使用 NSDecimalNumber 而不是 NSNumber 来更好地处理十进制数。
它有一个类方法 +decimalNumberWithString: </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 设置 maximumFractionDigits 不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29205260/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29205260/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 设置 maximumFractionDigits 不起作用