Вычислить положительные дроби в target-c

Я попытался вычислить 4/3 и сохранить его в число с плавающей запятой.

float answer = 4/3;

Это возвращает только 1. Разве Objective-C не может вычислять такие дроби или мне нужно сделать это каким-то другим способом?


person Wilhelm Michaelsen    schedule 01.09.2013    source источник


Ответы (3)


Если числитель и знаменатель оба являются целыми числами, то деление будет целым. Использовать

float answer = 4/(float)3
person Kirsteins    schedule 01.09.2013

4 и 3 — целые числа. Таким образом, это деление является целочисленным делением, которое оценивается как 1.

Если вам нужно деление с плавающей запятой, используйте (по крайней мере, один) литерал с плавающей запятой.

float answer = 4f/3;
person Mat    schedule 01.09.2013

Ваше задание содержит целочисленное деление, которое возвращает ноль, если число, на которое вы делите, больше. Вероятно, вы хотели сделать:

float p1 = (4.0f / 3.0f);

or

float p1 = ((float)4 / 3);
person Erhan Demirci    schedule 01.09.2013