Bagaimana cara mengonversi angka negatif ke nilai absolut di Objective-C?
yaitu
-10
menjadi
10?
Bagaimana cara mengonversi angka negatif ke nilai absolut di Objective-C?
yaitu
-10
menjadi
10?
Jawaban:
Tergantung pada jenis variabel Anda, salah abs(int), labs(long), llabs(long long), imaxabs(intmax_t), fabsf(float), fabs(double), atau fabsl(long double).
Fungsi-fungsi itu semua adalah bagian dari pustaka standar C, dan juga hadir baik di Objective-C dan plain C (dan umumnya juga tersedia di program C ++.)
(Sayangnya, tidak ada habs(short)fungsi. Atau scabs(signed char)dalam hal ini ...)
Header Objective-C Apple dan GNU juga menyertakan ABS()makro yang bertipe agnostik. Namun saya tidak menyarankan penggunaan ABS()karena tidak dijamin aman efek samping. Misalnya, ABS(a++)akan memiliki hasil yang tidak ditentukan.
Jika Anda menggunakan C ++ atau Objective-C ++, Anda bisa memasukkan <cmath>header dan gunakan std::abs(), yang templated untuk semua tipe integer standar dan floating-point.
ABS()tidak efek samping yang aman pada semua kompiler, karena itu saya tidak menyarankan untuk menggunakannya.
extern float fabsf(float); extern double fabs(double);
Anda dapat menggunakan fungsi ini untuk mendapatkan nilai absolut:
+(NSNumber *)absoluteValue:(NSNumber *)input {
return [NSNumber numberWithDouble:fabs([input doubleValue])];
}