【问题标题】:Round off float values in a dictionary对字典中的浮点值进行四舍五入
【发布时间】:2017-08-04 13:11:06
【问题描述】:

我有一个包含字典的数组。我需要将键“价格”的值更改为仅使用 2 个小数位的浮点值,但字典应该保持不变。我尝试获取每个价格值并将它们替换为可变数组。但我需要一个更简单的解决方案。提前致谢。

(
{
    pen =     {
        price = 180.1299;
    };
    pencil =     {
        price = 20.1299;
    };
},
{
    pen =     {
        price = 111.1267;
    };
    pencil =     {
        price = 23.1278;
    };
}
)

【问题讨论】:

  • 你为什么首先使用字典?使用对象。 Objective-C 不是 Javascript。将字典解析为对象,更改值并将其编码回字典。
  • 我解析了,价格值变成了 20.129899999999。
  • 这是相同的值。如果你想要两位数的十进制值,你必须把它们写成一个字符串。
  • “我尝试获取每个价格值并将它们替换为可变数组。但我需要一个更简单的解决方案。” - 编辑您的问题以包含此代码(或者如果它太长,请至少包含更多关于它的代码)并解释您为什么认为它太复杂。这将帮助人们帮助你。
  • 您可以将您的值保存为 NSString 并使用 stackoverflow.com/questions/560517/… 并继续按预期使用您的 NSdictionary 作为键/值存储,而无需执行上面建议的所有其他额外工作,即使从长远来看也是如此您将从干净的面向对象设置中受益更多。

标签: ios objective-c floating-point nsmutablearray nsmutabledictionary


【解决方案1】:

简单的解决方案

float  price = 180.1299;
NSString *strRoundPriceVal = [NSString stringWithFormat:@"%.2f",price];
NSLog(@"The Rounded Price Value is - %@",strRoundPriceVal);

输出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多