Я только что столкнулся с ситуацией в Objective-C, где:
NSLog(@"%i", (int) (0.2 * 10)); // prints 2
NSLog(@"%i", (int) ((1.2 - 1) * 10)); // prints 1
поэтому мне интересно, является ли значение числом с плавающей запятой или двойным, и нам нужно целое число, должны ли мы никогда не использовать (int)
для приведения, а использовать (int) round(someValue)
? Или, чтобы перевернуть вопрос, когда мы должны просто использовать (int)
, но в таких ситуациях не может (int) round(someValue)
также выполнять эту работу, поэтому мы почти всегда должны использовать (int) round(someValue)
?