關於精確度-保留小數點後幾位小數
阿新 • • 發佈:2019-01-23
之前在開發中,在處理一些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;
暫時只想到這兩種方法來處理。個人更喜歡使用第二種方法。保留更多位小數的方法同上