apakah ada cara untuk mendapatkan nilai absolut dari integer?
sebagai contoh
-8
to
8
Saya sudah mencoba menggunakan UInt () dengan asumsi itu akan mengkonversi Int ke nilai yang tidak ditandatangani tetapi tidak berhasil.
apakah ada cara untuk mendapatkan nilai absolut dari integer?
sebagai contoh
-8
to
8
Saya sudah mencoba menggunakan UInt () dengan asumsi itu akan mengkonversi Int ke nilai yang tidak ditandatangani tetapi tidak berhasil.
Jawaban:
Fungsi standar abs()
berfungsi dengan baik di sini:
let c = -8
print(abs(c))
// 8
Dengan Swift 5, Anda dapat menggunakan salah satu dari dua cara berikut untuk mengkonversi bilangan bulat ke nilai absolutnya.
Int
dari magnitude
propertiInt
memiliki magnitude
properti. magnitude
memiliki deklarasi berikut:
var magnitude: UInt { get }
Untuk nilai numerik apa pun
x
,x.magnitude
adalah nilai absolut darix
.
Cuplikan kode berikut ini menunjukkan cara menggunakan magnitude
properti untuk mendapatkan nilai absolut pada Int
instance:
let value = -5
print(value.magnitude) // prints: 5
Int
dari abs(_:)
metodeSwift memiliki fungsi numerik global yang disebut abs(_:)
metode. abs(_:)
memiliki deklarasi berikut:
func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric
Mengembalikan nilai absolut dari angka yang diberikan.
Cuplikan kode berikut ini menunjukkan cara menggunakan abs(_:)
fungsi global untuk mendapatkan nilai absolut pada Int
instance:
let value = -5
print(abs(value)) // prints: 5
abs(Int8.min)
tidak bisa bekerja dan karenanya membuat kesalahan overflow.
Jika Anda ingin memaksa nomor untuk berubah atau tetap positif.
Inilah caranya:
abs() for int
fabs() for double
fabsf() for float