我的 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/