我從其他帖子複製了該代碼。我試過這個例子,但是,我得到了一個EXEC_BAD_ACCESS。從我已閱讀,這種錯誤發生時試圖使用已釋放的對象,但我看不出我這樣做:將十進制轉換爲十進制字符
呼叫 ...
float weighted_average = num_of_passes/total_of_all_passes;
NSString *newNumber = [[NSString alloc] init];
newNumber = [self formattedStringWithDecimal:weightedAverage]; //weighted average (float) = 15.875145
...
的功能
- (NSString *)formattedStringWithDecimal:(NSDecimalNumber *)decimalNumber
{
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:2]; //two deimal spaces
[formatter setRoundingMode: NSNumberFormatterRoundHalfUp]; //round up
NSString *result =[NSString stringWithString:[formatter stringFromNumber:decimalNumber]];
[formatter release];
return result;
}
你能發佈錯誤信息嗎?首先爲您的可執行文件啓用NSZombieEnabled。 – 2011-04-24 18:27:35
而且formatterstringFromNumber是如何定義的?我無法運行代碼。請添加代碼。加權平均是如何初始化的? – 2011-04-24 18:36:24
應該讀取:[formatter stringFromNumber – draion 2011-04-24 18:57:19