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.
Intdari magnitudepropertiIntmemiliki magnitudeproperti. magnitudememiliki deklarasi berikut:
var magnitude: UInt { get }
Untuk nilai numerik apa pun
x,x.magnitudeadalah nilai absolut darix.
Cuplikan kode berikut ini menunjukkan cara menggunakan magnitudeproperti untuk mendapatkan nilai absolut pada Intinstance:
let value = -5
print(value.magnitude) // prints: 5
Intdari 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 Intinstance:
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