2012-09-07 37 views
8

tôi có một danh sách các số trong một danh sách dài lớn nhập khẩu từ một CSV,số vòng ios để int hoặc .5

tôi cần phải tham khảo danh sách sau khi người dùng nhập vào một số trong một textfield, vì vậy sau khi sử dụng có hiệu số tôi cần phải lấy số nguyên gần nhất hoặc x.5

ví dụ

1; 
1.5; 
2; 

và vân vân

vì vậy nếu người dùng nhập vào 1.2, nó sẽ đi đến 1 , Và nếu người dùng nhập vào 1,45 đi đến 1,5

nên đó là nguyên tắc chung, nhưng đối với một tập dài các con số,

vậy làm thế nào tôi có thể thực hiện điều này?

cảm ơn rất nhiều!

Trả lời

28

Chỉ cần làm điều này:

x = round(x * 2.0)/2.0; 

này vòng x đến bội số gần nhất là 0,5.

+0

Hoặc chỉ cần 'x = round (x + 0,5); 'mà phải là một tính rẻ hơn để thực hiện (chỉ có một bổ sung thay vì một nhân và một phân chia) –

+3

@David: không, điều đó sẽ chỉ làm tròn (lên) đến một số nguyên - OP muốn làm tròn đến bội số gần nhất là 0,5, AFAIUI. –

+1

Rất đúng. Tôi đọc câu hỏi đơn giản là làm tròn. +1 –

1

nó sẽ trông giống như một cái gì đó bên dưới trong Swift

var valueToBechanged = 3.45 
// Casting the valueToBechanged to Double because it can be Float, Int etc 
var roundedRating : Double = round(Double(valueToBechanged) * 2)/2.0