NSInteger是否允许小数位?

时间:2012-12-12 17:51:17

标签: nsinteger decimal cgfloat

我需要让某人输入一个值为“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)

有谁知道为什么会这样?我希望这个数字至少是最接近的小数位。

由于

Layth

1 个答案:

答案 0 :(得分:2)

NSInteger仅存储integers,因此不存储小数位。如果需要存储浮点值,请使用NSFloatNSDecimal