2011-02-10 37 views
5

Cách chính xác để thể hiện giá trị kép là NSString là gì? Trong mã của tôi, nó được tính toán hoặc thay vì làm một số loại làm tròn .. Tôi không chắc chắn. Dưới đây là mã của tôi;Biểu thị giá trị kép là NSString

X = [NSString stringWithFormat:@"%d", [abc doubleValue] - [xyz doubleValue]]; 

Tôi nhận abc là 69206000000, xyz là 31687000000, X là 58720256

Xin hãy giúp tôi.

Trả lời

13

Sử dụng công cụ sửa đổi định dạng %f để hiển thị giá trị kép - mã %d trong mã của bạn đề cập đến giá trị số nguyên. (Xem String Format Specifiers để biết thêm thông tin.)

+5

'% f' hiển thị một phao. Câu trả lời đúng là '% lf' cho phao dài (gấp đôi). – svoisen

+0

Apple [NSString định dạng specifiers] (https://developer.apple.com/library/mac/documentation/cocoa/conceptual/strings/articles/formatSpecifiers.html) nói rằng '% f' là một" 64-bit nổi- số điểm ('double')." Hơn nữa, đối số 'l' (trong Bảng 2 cho các điều chỉnh độ dài) được ghi lại để chỉ áp dụng cho' d', 'o',' u', 'x' hoặc' X'. – Tim

+0

Và thậm chí hơn nữa, Bảng 3 nói rõ ràng: "'% f' hoạt động cho phao và tăng gấp đôi khi định dạng ... " – Tim

1

% d là số nguyên. Sử dụng% f. Đọc lên trên định dạng specifiers.

3

% d là số nguyên, do đó bạn sẽ nhận được một số đầu ra funky đi qua trong một đôi hoặc nổi. Hãy thử điều này thay vì:

NSString *str = [NSString stringWithFormat:@"%f", [abc doubleValue] - [xyz doubleValue]]; 
7

Sử dụng %lf cho giá trị đôi

X = [NSString stringWithFormat:@"%lf", [abc doubleValue] - [xyz doubleValue]]; 

Hy vọng điều này sẽ giúp bạn.

Các vấn đề liên quan