В C и Objective C, должны ли мы почти никогда не преобразовывать число с плавающей запятой или двойное значение в целое число, просто используя (int)?

Я только что столкнулся с ситуацией в 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)?

5
задан nopole 27 June 2012 в 14:55
поделиться