#include <stdio.h>
#include <float.h>
int main()
{
printf("%f\n", FLT_MAX);
}
Output từ GNU:in ấn rất lớn số dấu chấm động
340282346638528859811704183484516925440.000000
Output từ Visual Studio:
340282346638528860000000000000000000000.000000
Đừng tiêu chuẩn C và C++ cho phép cả hai kết quả? Hay họ ủy thác một kết quả cụ thể?
Lưu ý rằng FLT_MAX = 2^128-2^104 = 340282346638528859811704183484516925440
.
Các tiêu chuẩn C và C++ thậm chí không chỉ định một biểu diễn dấu phẩy động cụ thể. Vì vậy, tôi bị cám dỗ để nghĩ rằng họ không thể ủy thác một kết quả cụ thể. – Mysticial
@Trung bình Vâng, họ có thể vẫn thường ủy quyền rằng "giá trị chính xác được đại diện phải được in ra" hoặc một cái gì đó đến mức độ đó. – fredoverflow
Và Unix pwns Windows. Một lần nữa. –