2013-08-02 5 views
1

Я хотел бы спросить, как округлить цифры следующим образом:Округление произвольным шагом

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

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

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

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

+0

Оба из вашего примера не совпадают. например, если вы округляете 246,5 до 250, тогда он должен округлить 581-590 до 600. Или предоставить дополнительную информацию. – Mrunal

+1

Закругленный шаг 50? NSNumberFormatter может помочь ... – Larme

+0

Ах да, я отредактировал сообщение. Извините за это –

ответ

7

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

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 
// .... 
.... 

UPDATE: если вы хотите округлить на шаг 50, просто установите roundToCloser на 50:

import <math.h> 
.... 
CGFloat notRounded = 144.5; // Put yours 
NSInteger rounded = roundf(notRounded/50) * 50; 
+0

Если вы используете поплавки, скорее используйте roundf, чем round. –

+1

Настоящий, фиксированный. Благодаря! –

+0

Я получаю эту ошибку: неожиданное имя типа NSinteger, ожидаемое выражение –