1. 程式人生 > >關於精確度-保留小數點後幾位小數

關於精確度-保留小數點後幾位小數

之前在開發中,在處理一些CGFloat型別時發現了關於小數點後保留幾位小數的一些問題:

保留小數點後一位小數:
  3.45 --> 3.5,4.95-->4.9

通過觀察可以發現他不是四捨五入,看起來是沒有規律的。這個不是我想要的結果。
我們的要求是保留小數點後一位小數,不用四捨五入,後面多餘的位數直接捨棄。當時想到了兩個方法。

1、 通過遍歷字串中小數點的位置,然後擷取適當長度的字串

NSString *score = @"將需要處理的數字轉化為字串";
if ([score containsString:@"."]) {
    NSRange range = [score rangeOfString:@"."
]; //設定擷取字串的位置以及擷取的長度 range = NSMakeRange(0, range.length + 2); //擷取字串 score = [score substringWithRange:range]; }

2、 通過簡單的計算

float scores = 3.45;
scores = ((int)(scores*10)/1)/10.0;

暫時只想到這兩種方法來處理。個人更喜歡使用第二種方法。保留更多位小數的方法同上