Умножение числа с плавающей запятой на 100 иногда дает несколько неожиданный результат в цели C

Итак, я пытаюсь преобразовать значение UISlider в целое число, чтобы использовать его в качестве индекса для получения значения из NSArray, но умножение значения ползунка иногда дает неожиданный результат.

int index = self.moveHistoryLabelSlider.value * 100;

Результат хорош для первых нескольких, но когда он достигает 0,15, он начинает давать другой результат. Вот NSLog для slider.value и slider.value * 100:

slider value = 0.150000 slider * 100 = 14.999999

Это происходит и с другими числами с плавающей запятой, например, 0,19 * 100 дает 19,999998. Как я могу это исправить?


person rjlacanlaled    schedule 10.12.2020    source источник
comment
См. stackoverflow.com/questions/2667130/how-to-round-cgfloat, вам нужно будет округлить номер   -  person CloudBalancing    schedule 10.12.2020


Ответы (1)