Có cách nào để có được giá trị tuyệt đối từ một số nguyên không?
ví dụ
-8
to
8
Tôi đã thử sử dụng UInt () giả sử nó sẽ chuyển đổi giá trị Int thành giá trị không dấu nhưng nó không hoạt động.
Có cách nào để có được giá trị tuyệt đối từ một số nguyên không?
ví dụ
-8
to
8
Tôi đã thử sử dụng UInt () giả sử nó sẽ chuyển đổi giá trị Int thành giá trị không dấu nhưng nó không hoạt động.
Câu trả lời:
Các abs()chức năng tiêu chuẩn hoạt động tuyệt vời ở đây:
let c = -8
print(abs(c))
// 8
Với Swift 5, bạn có thể sử dụng một trong hai cách sau để chuyển đổi một số nguyên thành giá trị tuyệt đối của nó.
Inttừ magnitudetài sảnIntcó một magnitudetài sản. magnitudecó tuyên bố sau:
var magnitude: UInt { get }
Đối với bất kỳ giá trị số
x,x.magnitudelà giá trị tuyệt đối củax.
Đoạn mã sau đây cho thấy cách sử dụng magnitudethuộc tính để có được giá trị tuyệt đối trên một Intthể hiện:
let value = -5
print(value.magnitude) // prints: 5
Inttừ abs(_:)phương thứcSwift có một hàm số toàn cầu được gọi là abs(_:)phương thức. abs(_:)có tuyên bố sau:
func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric
Trả về giá trị tuyệt đối của số đã cho.
Đoạn mã sau đây cho thấy cách sử dụng abs(_:)hàm toàn cục để có được giá trị tuyệt đối trên một Intthể hiện:
let value = -5
print(abs(value)) // prints: 5
abs(Int8.min)không thể hoạt động và do đó tạo ra lỗi tràn.
Nếu bạn muốn buộc một số thay đổi hoặc giữ cho nó tích cực.
Đây là cách:
abs() for int
fabs() for double
fabsf() for float