2014-06-04 20 views
20

Theo tài liệu của Apple, Swift không hỗ trợ các chỉ thị tiền xử lý. Trong C/Objective-c định nghĩa "INFINITY" rất hữu ích cho một số kiểm tra. Vì vậy, Làm thế nào để tôi nhận được một con số không bao giờ nhỏ hơn số khác?INFINITY trong Swift Lang

+0

Bạn có thể thử cách chia phao từng cái phao zero. –

+1

@Pascal: Điều đó có thể giúp bạn nổi NaN. Hoặc một vụ tai nạn. – rickster

+1

@rickster Tôi tin rằng dân gian ở Apple có chút quen thuộc hơn với IEEE 754 hơn thế. –

Trả lời

31

Có đã được buildin vô cực và cũng là một chức năng kiểm tra. Và bạn cũng có thể trực tiếp so sánh chúng với <.

var infinity = Double.infinity 
var isInfinite = infinity.isInfinite 
var someDouble = 234432.0 
if someDouble < infinity { 
    println("Less than") 
} else { 
    println("Small than") 
} 
// And the answer is Less than. 
0

Có lẽ bạn có thể thử finite, ví dụ,

let x:CDouble = 0.1 
finite(x) // which return a CInt 
3

Đối với giá trị số nguyên, bạn nên sử dụng Int.max.

var highestNumber = Int.max 

//if you need negative infinity 
var lowestNumber = Int.min 

Sử dụng NSIntegerMax thay vì Int.max hoặc -1 * NSIntegerMax thay vì Int.min là tương đương, nhưng ít khá. (Cảm ơn @Charlesism)

+8

Hoặc "Int.max" đọc tốt hơn "NSIntegerMax" – Charlesism

0

Đối với các giá trị nổi,

import UIKit 

typealias Space = Float 

var MaxSpaceSize = Space.infinity 

var space:Space = 1100 

space = space * 2 
Các vấn đề liên quan