2012-11-29 37 views
9

AFAIK không thể sử dụng chỉ bằng [NSString stringWithFormat: @ "% d"] vì không có thông số cụ thể để hiển thị + hiển thị rõ ràng, ít nhất tôi đã làm Không tìm thấy nó tại Apple Developer String Format Specifiers
Vì vậy, có vẻ như tôi phải sử dụng NSNumberFormatter trong trường hợp của tôi. Tôi tìm thấy cách thiết lập biểu tượng dấu cộng nhưng không thể tìm ra cách để đạt được mục tiêu của mình. Tôi đã thửCách định dạng int thành NSString bằng cách hiển thị dấu + cho số dương trong iOS

NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease]; 
    [numberFormatter setPositiveFormat:@"+0"]; 
    NSString strNumber = [numberFormatter stringFromNumber:[NSNumber numberWithInt:intSomeNumber]]; 

nhưng tôi sợ nó sẽ cắt số GT 9 thành 1 chữ số và tôi không muốn điều đó. Tôi chỉ muốn hiển thị bất kỳ int tích cực với + và bất kỳ tiêu cực với -. Đây có phải là đúng cách có thể:

NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease]; 
[numberFormatter setPositiveFormat:@"+#"]; 
NSString strNumber = [numberFormatter stringFromNumber:[NSNumber numberWithInt:intSomeNumber]]; 

Trả lời

18

Từ trang rất bạn liên kết:

Để biết thêm chi tiết, xem IEEE printf specification .

Bây giờ từ đặc tả IEEE printf:

+ Kết quả của một chuyển đổi ký phải luôn luôn bắt đầu bằng dấu ('+' hoặc '-'). Chuyển đổi sẽ bắt đầu bằng dấu chỉ khi giá trị âm được chuyển đổi nếu cờ này không được chỉ định.

Ví dụ:

NSLog(@"%+f", 3.455677); 

Kết quả:

+3.455677 
2

Chỉ cần sử dụng:

NSString *strNumber = [NSString stringWithFormat:@"%+d",intSomeNumber]; 
+1

Đó là gonna được niềm vui khi số lượng là tiêu cực. –

+0

@HermannKlecker; đó là lỗi đánh máy :) Cảm ơn bạn đã thông báo –

+0

Cảm ơn bạn đã chỉnh sửa –

7

Sử dụng [NSString stringWithFormat:@"%+d", intSomeNumber]

8
[numberFormatter setPositivePrefix:@"+"]; 
Các vấn đề liên quan