0
我需要NSNumberFormatter有條件地顯示非常大或非常小的數字作爲科學記數法。但是,如果數字可以沒有,我需要它只有十進制。 6.62e-34好,但4,2E1不好。NSNumberformatter準科學記數法
系統的其它部分,我一直在使用下面的方法解決了這個:
- (NSString *) formatNumber: (double) d {
BOOL sci=NO;
double dd = d;
if (dd<0.0) dd=(-d);
if ((dd>0.0) && (dd<1e-3)) sci=YES;
if (dd>1e+8) sci=YES;
if (sci) [nf setNumberStyle:NSNumberFormatterScientificStyle];
else [nf setNumberStyle:NSNumberFormatterDecimalStyle];
return [nf stringFromNumber:[NSNumber numberWithDouble:d]];
}
但在這個特殊的地方,整個事情是建立在界面生成器,使用綁定到一個管理對象莫代爾和使用數組控制器對象。在tableview中的第一個文本單元格中,我拖入了數字格式化器。我不知道是否可以定義一些自定義的方法來調用格式,而不是使用這個NumberFormatter。如果我把它拿走,我運行它時會出錯。
任何人有一些想法?
您可以使用if-else來相應地檢查並顯示... –
您是否想要從單個NSNumberFormatter中獲取6.62e-32和421? –
您是使用數據源填充表視圖,還是使用綁定? – rdelmar