Округление произвольным шагом

Я хотел бы спросить, как округлить числа следующим образом:

Я вычисляю число и получаю, например, 246,5. Я хотел бы округлить это число до 250. Другой пример - от 581 до 600.

Есть ли способ сделать это в iOS? Как?

Я на самом деле хотел округлить числа до чисел, кратных 50). Я хочу использовать это, чтобы масштабировать ось Y графика, который я генерирую.

У меня есть ряд чисел, каждое из которых рассчитывается по уравнению, и я просто хочу отформатировать каждое, например, ( 250(если 246,5); (600, если 586,2)

1 ответ

Решение

Я не понимаю точно, что вы хотите округлить. В первом примере вы округляетесь до следующих десятков. Во втором до следующих сотен. Во всяком случае, общий способ будет:

import <math.h>
....
NSInteger roundToCloser = 1; // 1 to round to closer unity, 10 closer tens, 100 closer hundreds and so on
CGFloat notRounded = 144.5; // Put yours
NSInteger rounded = roundf(notRounded / roundToCloser) * roundToCloser;
// roundToCloser == 1 -> 144
// roundToCloser == 10 -> 140
// rountToCloser == 100 -> 100
// ....
....

ОБНОВЛЕНИЕ: если вы хотите округлить с шагом 50, просто установите roundToCloser на 50:

import <math.h>
....
CGFloat notRounded = 144.5; // Put yours
NSInteger rounded = roundf(notRounded / 50) * 50;
Другие вопросы по тегам