2013-04-25 25 views
0

如何準確地圓整float value,如1.449567在Objective-C中準確輸出所需小數點的圓形浮點值

輸出值應爲所需的小數點浮點值

輸出應該是這樣的:

for 1 decimal point **f=1.5** 
for 2 decimal point **f=1.45** 
for 3 decimal point **f=1.450** 
for 4 decimal point **f=1.4496** 
+4

根據我的數學知識,1.449四捨五入爲1.4,而不是1.5,如果四捨五入至小數點後一位...... – 2013-04-25 14:08:49

+2

而1.450和1.4496。 – kennytm 2013-04-25 14:09:34

+0

你沒有說清楚的是,你關心的是小數點後的位數,還是顯示的總位數(在你的「3」行中,數字將是「4」,而不管大小的浮動)。 – 2013-04-25 14:23:55

回答

1

我建議考慮使用NSNumberFormatter

例子:

float roundedValue =1.45999f; 
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setMaximumFractionDigits:1]; 
[formatter setRoundingMode: NSNumberFormatterRoundDown]; 

NSString *numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:roundedValue]]; 
+1

我找出你的答案。我thk它爲我工作..感謝您的幫助... – 2013-04-26 08:37:02

+0

@ Mr.Frank ..它是四捨五入任何一方只有NSNumberFormatterRoundDown或NSNumberFormatterRoundUp。如何有效地做到這一點...幫助我...例如小數點以下的數字4表示不需要圓形或小數點以上的數字5表示加1到前一個十進制數字。 我如何有效地做到這一點,沒有任何金額損失,因爲我在這裏湊錢。 – 2013-05-07 06:16:08

+0

最好是用'formatter.roundingMode = NSNumberFormatterRoundHalfEven;' – 2013-05-08 15:19:00