2012-07-17 61 views
2

我使用NSNumberFormatter來格式化NSDecimalNumber如何配置NSNumberFormatter以顯示不帶前導零的小數部分?

我可以使用什麼配置將0.012676顯示爲1

重要:我試圖圍捕1.0 - 我試圖四捨五入到上百元發生在十進制,然後剝離前的零和小數點分隔符。


我目前的配置看起來是這樣的:

// in a method... 

NSDecimalNumber *value = /* retrieve a value like 0.012676 */; 
NSNumberFormatter *nf = [[NSNumberFormatter alloc] init]; 

// this is the rounding behavior I want 
[nf setRoundingMode: NSNumberFormatterRoundHalfEven]; 

[nf setMinimumFractionDigits: 2]; 
[nf setMaximumFractionDigits: 2]; 

return [nf stringFromNumber: value]; 

產生的輸出:

.01


與感謝dasblinkenlight和Twitter的朋友時,解決方案只是乘以100,然後消除小數位數:

[nf setMultiplier: [NSNumber numberWithInt: 100]]; 
[nf setMinimumFractionDigits: 0]; 
[nf setMaximumFractionDigits: 0]; 

回答

2

您可以通過十歲的N次方乘以消除N前導零。由於您正在尋找第一百位,請將0.012676乘以100,然後將其轉換爲整數。

+0

謝謝! Twitter上也指出了這一點,所以我想在這裏指出未來的訪問者:https://twitter.com/photar/status/225233393804251136 – 2012-07-17 14:31:43