bir tamsayıdan mutlak değer almanın bir yolu var mı?
Örneğin
-8
to
8
Ben zaten Int imzasız değere dönüştürecek varsayarak UInt () kullanmaya çalıştım ama işe yaramadı.
bir tamsayıdan mutlak değer almanın bir yolu var mı?
Örneğin
-8
to
8
Ben zaten Int imzasız değere dönüştürecek varsayarak UInt () kullanmaya çalıştım ama işe yaramadı.
Yanıtlar:
Standart abs()
fonksiyon burada harika çalışıyor:
let c = -8
print(abs(c))
// 8
Swift 5 ile, bir tamsayıyı mutlak değerine dönüştürmek için aşağıdaki iki yoldan birini kullanabilirsiniz.
Int
gelen magnitude
mülkiyetInt
Bir sahiptir magnitude
özelliği. magnitude
aşağıdaki beyanı içerir:
var magnitude: UInt { get }
Herhangi bir sayısal değer için
x
,x.magnitude
mutlak değeridirx
.
Aşağıdaki kod snippet'i, magnitude
bir Int
örnekte mutlak değeri elde etmek için özelliğin nasıl kullanılacağını gösterir :
let value = -5
print(value.magnitude) // prints: 5
Int
gelen abs(_:)
bir yöntemSwift, abs(_:)
yöntem adı verilen küresel bir sayısal işleve sahiptir . abs(_:)
aşağıdaki beyanı içerir:
func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric
Belirli bir sayının mutlak değerini döndürür.
Aşağıdaki kod snippet'i, abs(_:)
bir Int
örnekte mutlak değeri elde etmek için genel işlevin nasıl kullanılacağını gösterir :
let value = -5
print(abs(value)) // prints: 5
abs(Int8.min)
ve bu nedenle bir taşma hatası oluşturur.
Bir sayıyı değiştirmek veya pozitif tutmak için zorlamak istiyorsanız.
İşte yolu:
abs() for int
fabs() for double
fabsf() for float