Разделите целое число и получите десятичный ответ

#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