1

我需要有人输入一个值,比如“40”,然后应用程序通过除以 7.5 将其转换为另一个值。目前我已经完成了:

    NSString *pCO2 = _pCO2.text;
    float thepCO2 = [pCO2 floatValue];
    NSInteger newpCO2 = thepCO2/7.5;
    NSString *finalpCO2 = [NSString stringWithFormat:@"%d", newpCO2];

然后,在另一个视图中,该应用程序获取名为 finalpCO2 的 NSString 并将其转换回一个数字,如下所示:

float newpCO2 = ([pCO2 floatValue]);

但是,当我这样做时,初始 pCO2 高于 38 的值似乎被四舍五入为 5(38 除以 7.5 = 5.0666),低于此值被四舍五入为 4(37 除以 7.5 = 4.93)

有谁知道为什么会发生这种情况?我希望这个数字至少到最接近的小数位。

谢谢

莱斯

4

1 回答 1

2

NSInteger只存储整数,所以不存储小数位。如果需要存储浮点值,请使用NSFloator 。NSDecimal

于 2012-12-12T17:55:54.200 回答