使用 JSON 解析来自 Web 服务的浮点数

Posted

技术标签:

【中文标题】使用 JSON 解析来自 Web 服务的浮点数【英文标题】:parsing a float from web-service with JSON 【发布时间】:2011-05-02 23:32:31 【问题描述】:

解析一个 NSString 我使用了这个:

NSString *adress=[stations objectForKey:@"adress_station"];

浮点数怎么样,我应该怎么称呼它,我尝试这样做:

       float distance=[stations objectForKey:@"distance"];

但我有一个错误:

incompatible type in initialization

我不想把它放在 NSString 中,我需要它作为浮点数,因为我在其他操作中需要它:)

【问题讨论】:

【参考方案1】:
float distance = [[stations objectForKey:@"distance"] floatValue];

objectForKey 返回一个对象(在这种情况下,我假设一个 NSString)。

在 NSString 上调用 -floatValue 将获取浮点数据。

【讨论】:

非常感谢,它就像一个魅力,但是当我从网络服务收到它时,它用一个数字四舍五入(即:7.1)但是当我在 iPhone 上显示它时它不再四舍五入了(7.057124) :)) 这将取决于您在解析该值后对它执行的操作。需要详细说明吗? 收到的值是例如 7.057124,我希望它是 7.1 :) @Malek 您真的希望它表示为 7.1 还是仅显示为 7.1?使用 %0.1f 的格式化程序打印它会为您提供显示所需的 7.1。 NSLog(@"%0.1f", 距离);否则,要实际舍入浮点数,您可以使用以下内容: distance = roundf(10 * distance) / 10; 不,实际上我想稍后使用它进行更多计算,而不仅仅是用于显示:)

以上是关于使用 JSON 解析来自 Web 服务的浮点数的主要内容,如果未能解决你的问题,请参考以下文章

2021-12-10:64位的浮点数和64位的有符号整数,哪个能表示的数据个数多? A.整型多。 B.浮点型多。 C.与平台有关。 D.一样多。 来自qq群。

解析为带有 2 位小数的浮点数

java中的浮点数

c++中如何输出保留三位小数的浮点数

使用 stringstream 打印四舍五入的浮点数

为啥不使用基于二进制补码的浮点数?