У меня есть двойной, который является интервалом времени в секундах. Допустимые значения: 0,0, 0,5, 1,0, 1,5 и т. Д.
Теперь мне нужно преобразовать это значение в int. Но я не могу этого сделать:
int converted = (int)theDouble;
Потому что может случиться так, что мой дубль из-за ошибок с плавающей запятой равен 0,9999999999, а не 1,000000000. Это будет просто отрезать хвост, и мы получим 0 вместо 1. Кроме того, когда мой дубль равен 0,9, я хочу, чтобы int был 1. Когда это 1.1, я хочу, чтобы int был 1. Когда это 1.8, я хочу, чтобы int было 2.
Есть функция round (), но Xcode не показывает документацию для этого. Заголовок только говорит, что возвращает двойной. Так что не то, что мне нужно.
Какой самый безопасный способ получить близкое int представление этого двойника? Хотя это двойное число, мне никогда не понадобится более высокая точность, чем 0,5 или одна фрагментальная цифра (я не гений математики и не знаю точных научных терминов).