Như mọi người đều biết, bạn có độ chính xác giới hạn khi bạn sử dụng printf
để xuất giá trị của float
.
Tuy nhiên, có một mẹo để tăng độ chính xác trong đầu ra, như ví dụ này cho thấy:Độ chính xác của phao nổi với printf
#include <stdio.h>
int main()
{
float f = 1318926965; /* 10 random digits */
printf("%10.f\n", f); /* prints only 8 correct digits */
printf("%10d\n", *(int*)&f); /* prints all digits correctly */
return 0;
}
và câu hỏi của tôi là, tại sao không phải là người sử dụng thủ thuật này thường xuyên hơn?
Do hành vi có khả năng không xác định là xấu. (Edit: Về mặt kỹ thuật nó có thể không phải là hành vi không xác định, vì tôi không chắc những gì tiêu chuẩn nói về nó. Endianess có thể cắn bạn với điều này mặc dù.) – Corbin
+1 cho một trò đùa đầu tiên của tháng tư tốt! – Henrik
Nó dường như đã cho tôi x.x – Corbin