Các abs chức năng sau đôi khi trả -0
(trừ zero)Thật kỳ lạ, tại sao hàm abs của tôi trả về -0?
inline float abs(float a){
return(a>=0.0f? a :-a);
}
Để cụ thể hơn, báo cáo kết quả sản xuất sprintf(str, "%.2f", abs(-0.00f));
"-0,00", và đó là gây phiền nhiễu từ các chuỗi được hiển thị cho người dùng.
Câu hỏi:
1) Tại sao sản phẩm -0
?
2) Cách khắc phục?
PS: Tôi đang sử dụng trình biên dịch c của xcode (mục tiêu).
Chỉ tò mò .. bất kỳ lý do nào bạn không sử dụng 'fabs' và' fabsf'? –
@JamesWebster Được rồi, fabs sẽ khắc phục được sự cố!Nhưng fabs được triển khai như thế nào và có gì sai với việc triển khai của tôi? – ragnarius
@ragnarius nó sẽ xuất: '-0.00' –