ทั้งสองฟังก์ชันคืนค่าสัมบูรณ์ (absolute value) ของตัวเลขโดยไม่สนใจเครื่องหมาย แต่มีความแตกต่างสำคัญดังนี้
ความแตกต่างหลัก
| คุณสมบัติ | abs() | math.fabs() |
|---|---|---|
| ประเภท | Built-in function | ฟังก์ชันในโมดูล math |
| การนำเข้า | ไม่ต้อง import | ต้อง import math |
| ประเภทคืนค่า | คงประเภทเดิม (int คืน int, float คืน float) | คืนค่าเป็น float เสมอ |
| รองรับ complex | รองรับ (คืน magnitude) | ไม่รองรับ |
ตัวอย่าง
>>> abs(-45) 45 >>> abs(110.12) 110.12 >>> import math >>> math.fabs(-45) 45.0 >>> math.fabs(110.12) 110.12
เมื่อไหร่ควรใช้ตัวไหน?
- ใช้
abs()สำหรับการเขียนโค้ดทั่วไป เร็วกว่าและยืดหยุ่นกว่า - ใช้
math.fabs()เมื่อต้องการความสม่ำเสมอในการคืนค่า float หรือทำงานกับไลบรารีคณิตศาสตร์ที่คาดหวัง float