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ó.
Int
từ magnitude
tài sảnInt
có một magnitude
tài sản. magnitude
có tuyên bố sau:
var magnitude: UInt { get }
Đối với bất kỳ giá trị số
x
,x.magnitude
là giá trị tuyệt đối củax
.
Đoạn mã sau đây cho thấy cách sử dụng magnitude
thuộc tính để có được giá trị tuyệt đối trên một Int
thể hiện:
let value = -5
print(value.magnitude) // prints: 5
Int
từ 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 Int
thể 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