ios - NSDictionary 和 JSON 值

标签 ios objective-c json nsdictionary floating-accuracy

我的 JSON 中有这个:

{"idAlunoGraduacao":001,"semestre":2,"ano":2010,"frequencia":100,"notaFinal":6,"conceito":"Aprovado","idTurma":"Biofisica"}, 
{"idAlunoGraduacao":002,"semestre":2,"ano":2010,"frequencia":88,"notaFinal":9.2,"conceito":"Aprovado","idTurma":"Diversidade sexual"}

在我的 .h 文件中有这个循环:

for (NSDictionary *dados in results)
    NSLog(@"%@",[dados objectForKey:@"notaFinal"]);

第一个“notaFinal”是 6 并且打印正常但是当打印第二个时结果是:9.199999999999999

为什么?

最佳答案

您的 JSON 不是 JSON,下一个代码是 JSON:

[ { "idAlunoGraduacao": 1, "semestre": 2, "ano": 2010, "frequencia": 100, "notaFinal": 6, "conceito": "Aprovado", "idTurma": "Biofisica" }, { "idAlunoGraduacao": 2, "semestre": 2, "ano": 2010, "frequencia": 88, "notaFinal": 9.2, "conceito": "Aprovado", "idTurma": "Diversidade sexual" } ]

此外,您的 JSON 与 Literal NSDictionary 非常相似。

@{@"idAlunoGraduacao":@001,@"semestre":@2,@"ano":@2010,@"frequencia":@100,@"notaFinal":@6,@"conceito":@"Aprovado",@"idTurma":@"Biofisica"};

然后,你说:“在我的 .h 文件中有这个循环:”,我很确定你的 .m 中有循环

在 Objective-C 中,使用 大括号 for 循环和 if-else 是一个最佳实践:

for (NSDictionary *dados in results)
{
    NSLog(@"%@",[dados objectForKey:@"notaFinal"]);
}

最后,正如@Koray_Alkan 所说,您可以使用

NSLog(@"Value: %.2f", [[dados objectForKey:@"notaFinal"] floatValue]);

关于ios - NSDictionary 和 JSON 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22691539/

相关文章:

ios - 将数据从类传递到 View Controller 的同一实例

ios - 如何在没有 Segue 的情况下将数据传递到下一个 viewController

c++ - Qt - 带注释的 JSON

javascript - 使用 Google map 创建点密度图

javascript - 如何将我的 ajax 调用输出添加/合并到 mysql 插入查询?

ios - 如何终止正在进行的 SCNTransaction?

iphone - 防止触摸通过CCLayer

ios - 安装 OSX Yosemite 后 Xcode 4.6.1 崩溃

ios - 带有查询参数的 Post 对象

objective-c - 按下工具栏按钮时 UIStoryboardPopoverSegue 关闭