tôi cần phải xác định độ dài chính xác của một chuỗi được in từ một giá trị gấp đôi, nhưng tôi không muốn hạn chế đầu ra bất kỳ hơn là cần thiết .C: có thể một đôi được khi in bao lâu qua printf()
độ dài tối đa mà một 6 chữ số chính xác kép sẽ có khi được định dạng bởi printf là gì()?
Cụ thể, những gì giá trị tôi nên đưa cho X trong printf("%X.6lg",doubleValue);
để đảm bảo rằng không có giá trị bị cắt? Lý do tôi cần phải cụ thể về độ dài là tôi đang xác định một kiểu dữ liệu có nguồn gốc từ MPI được tạo thành từ nhiều biểu diễn chuỗi giá trị kép và phải biết độ dài chính xác của chúng để phân chia các vùng của tệp giữa MPI quy trình.
Tôi hy vọng điều đó rõ ràng. Cảm ơn trước vì đã trả lời.
Tôi không chắc chắn bạn đang yêu cầu gì - bạn có muốn tất cả các giá trị của mình dài 6 chữ số có nghĩa không, như 0.123456, 1.23456, 12345.6, v.v ...? Hay bạn chỉ quan tâm rằng phần phân số là 6 chữ số có nghĩa? Đối với các giá trị phân số, tôi không biết làm thế nào bạn có thể tránh cắt ngắn, trừ khi các giá trị của bạn là ''dyadic' '(tức là chấm dứt nhị phân) và nhỏ hơn hoặc bằng 63/64th. –