2012-09-19 23 views
5

Tôi đang cố gắng đặt số chữ số của phao có điều khiển phân đoạn.iPhone: Bao nhiêu chữ số phải sau dấu chấm của một phao

Vì vậy, tôi đã tạo một điều khiển được phân đoạn bằng "0", "1", "2" và "3". Tôi muốn đặt các chữ số sau dấu phẩy có một biến (self._segmentedControl.selectedSegmentIndex).

tôi biết rằng tôi có thể quyết định có bao nhiêu chữ số sau dấu phẩy nên như thế này:

sliderValue.text = [NSString stringWithFormat:@"%.3f",slider.value]; 

Ai đó có thể xin hãy giúp tôi?

+1

Và câu hỏi Xcode liên quan của bạn là: ??? –

+0

làm thế nào tôi có thể thiết lập số lượng digts với đầu ra của self._segmentedControl.selectedSegmentIndex – MaxB

+0

vấn đề là ** đó là một * không liên quan đến Xcode ***. –

Trả lời

7

Bạn thậm chí có thể làm điều đó chỉ trong một bước:

sliderValue.text = [NSString stringWithFormat:@"%.*f", numberOfDigits, slider.value]; 
2

Bạn có thể thực hiện việc này theo hai bước.

NSString *format = [NSString stringWithFormat:@"%%.%df", numberOfDigits); 
sliderValue.text = [NSString stringWithFormat:format, slider.value]; 
+0

Ồ. My. Thượng Đế. Bạn đã đánh nó với tôi trong 8 giây! Và chúng tôi thậm chí còn sử dụng cùng tên biến cho chuỗi định dạng! –

+0

Downvoter: ** reason ??? ** Tại sao ai đó đến đây và ngẫu nhiên downvoting câu trả lời hợp lệ! Đi vít chính mình, kẻ giết người vô danh! *** Câu trả lời này là tốt !!! *** –

2
NSString *format = [NSString stringWithFormat:@"%%.%df", numberOfDecimalPlaces]; 
sliderValue.text = [NSString stringWithFormat:format, slider.value]; 

này nên làm các trick. Cẩn thận với các cuộc tấn công chuỗi định dạng.

+0

Wow, lần này chúng ta gần như đã có được giải pháp giống hệt nhau. :-) – DrummerB

+0

Downvoter: ** reason ??? ** –

+0

Có lẽ ai đó thích giải pháp lót một? – nhahtdh

1

Kiểm tra xem tác phẩm này có hoạt động hay không. Tôi chỉ thử nghiệm này với C + +, nhưng kể từ khi tài liệu cho String Format điểm đến IEEE printf specification, tôi tin rằng nó cũng nên làm việc cho Mục tiêu-C.

sliderValue.text = [NSString stringWithFormat: @"%.*f", places, slider.value]; 
+0

Nó hoạt động. (Tôi không thấy câu trả lời của bạn trước khi nhấn "Đăng"). –

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