#iphone #objective-c #math
#iPhone #objective-c #математика
Вопрос:
в настоящее время у меня есть целое число, int i
и его значение 60
я хочу разделить это на 100
, чтобы получить 0,60, но я не могу этого сделать, пожалуйста, помогите
int i = 60;
int x = 60 / 100; // Dosen't work should be 0.60 instead returns 0
Комментарии:
1. Целое число — это … ну, целое число. Вы не можете получить дроби с его помощью. Если вы должны (по какой-то неизвестной причине) использовать только целые числа, вы можете использовать mod (%), чтобы получить оставшуюся часть деления… в вашем случае: int x = 600, а x должно быть 60 (остальная часть деления)
Ответ №1:
разделите на 100.0f и верните результат в виде числа с плавающей запятой.
Комментарии:
1. C переведет i в float для выполнения деления, поскольку другая часть является float.
2. Похоже, что i уже является целым числом (код в приведенном выше вопросе)? Вы могли бы сделать «float i2 = i», который преобразует значение int i в значение с плавающей точкой i2. Вы можете выполнить явное приведение, которое будет делать то же самое, но будет более явным «float i2 = (float)i;»
3. Малоизвестный лакомый кусочек для дополнительной оценки — по-видимому, objective-c предполагает, что литералы с плавающей запятой, такие как xx.yy, по умолчанию имеют значение double, а не float. Итак, вы можете быть явным и использовать xx.yyf, чтобы переопределить это.
Ответ №2:
Вы можете получить правильное значение, используя следующий метод:
float x = 60 / 100.0f;
Если вы ищете значение 0.60, вы не можете присвоить ему тип integer (целое число).
Ответ №3:
int i = 60;
float x = (float)i/100.0f;
NSLog(@"%.2lf", x);
//this will print 0.60