Tôi có mộtiOS Objective-C Làm thế nào để có được 2 giá trị phẩy tròn thập phân?
float a = 1412.244019;
và tôi cần một để được làm tròn đến chữ số thập phân thứ hai gần như 1412,24000000. Tôi hiểu rằng nếu tôi muốn trình bày một chỉ với hai số thập phân tôi sử dụng% .2f, nhưng đó không phải là trường hợp. Tôi cần một lý do toán học mới như một phao.
Tôi đã thử một vài phương pháp được tìm thấy trên stackoverflow mà không có may mắn. Cái tôi thấy rõ ràng hơn, tôi đề cập bên dưới, nhưng vẫn không có may mắn khi sử dụng nó. Bạn có thể thấy tại sao phép thuật không xảy ra?
PS: Nó có tác dụng mong muốn đôi khi, KHÔNG phải lúc nào cũng khiến tôi suy nghĩ ... hmmm ...
Xin cảm ơn trước.
Code:
float a = 1412.244019;
NSLog(@"a is %f", a); //output a is 1412.244019
a = [[NSString stringWithFormat:@"%.2f", a] floatValue];
NSLog(@"a is %f", a); //output a is 1412.239990
EDIT:
có vẻ như khi tôi đang sử dụng các phao một sau khi phẫu thuật trên, nó đang xem xét nó được 1412,240000 eventhough NSLog nói cách khác nhau ... lạ. Nhưng tôi đang nhận được những gì tôi muốn, vì vậy Kudos cho thời gian lãng phí đuổi gì :)
EDIT Tôi rất thích để lựa chọn cho bạn tất cả câu trả lời là đúng, nhưng kể từ khi tôi chỉ có thể chọn một, tôi đã chọn câu trả lời tốt đầu tiên với lời giải thích thêm (của hai người cuối cùng).
Đã thử nó, Saw bạn đã đăng phương pháp này trong bài đăng khác. Nhưng NSLog vẫn cho cùng một câu trả lời (thử bản thân). Nhưng vui lòng xem EDIT ở trên. Mặc dù NSLog đang đưa ra định dạng "sai", nó đang sử dụng nó đúng. –
Giống như tôi đã nói trong bản chỉnh sửa, không thể có được độ chính xác đầy đủ trong các điểm nổi –
Tôi hiểu. Nó đang tính toán theo cách tôi muốn. Tôi chỉ nghĩ điều đó thật kỳ lạ, bởi vì thế thì bạn sẽ không bao giờ có thể sử dụng số học chính xác? –