2013-08-02 51 views
1

我想問如何舍入數字如下:任意步驟舍入

我正在計算一個數字,我得到例如246,5。我想將這個數字舍入到250.另一個例子是581到600.

有沒有辦法在iOS中做到這一點?怎麼樣?

我其實想把數字整數化爲50的倍數)。我想用它來縮放我生成的圖形圖的y軸。

我有計算與方程數的阿雷每個和我只是想每一個格式化爲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,預期的表達 –