NSInteger допускает десятичные разряды?
Мне нужно, чтобы кто-то набрал значение, скажем, "40", а затем приложение преобразует его в другое значение путем деления на 7,5. на данный момент я сделал:
NSString *pCO2 = _pCO2.text;
float thepCO2 = [pCO2 floatValue];
NSInteger newpCO2 = thepCO2/7.5;
NSString *finalpCO2 = [NSString stringWithFormat:@"%d", newpCO2];
а затем позже, в другом представлении, приложение берет строку NSString с именем finalpCO2 и преобразует ее обратно в число, например, так:
float newpCO2 = ([pCO2 floatValue]);
Однако, когда я делаю это, значения выше 38 для начального pCO2, кажется, округляются до 5 (38 делится на 7,5 = 5,0666), а ниже это округляется до 4 (37 делится на 7,5 = 4,93)
Кто-нибудь знает, почему это может происходить? Я хочу, чтобы цифра была по крайней мере до ближайшего десятичного знака.
Спасибо
Layth
1 ответ
NSInteger
хранит только целые числа, поэтому нет, он не хранит десятичные разряды. Использовать NSFloat
или же NSDecimal
если вам нужно хранить значения с плавающей запятой.