我正在编写一个打印浮点文字的程序,以便在另一个程序中使用.
我需要打印多少位才能保持原始浮点的精度?
由于浮点数具有24 * (log(2) / log(10)) = 7.2247199精度的十进制数字,我最初的想法是打印8位数就足够了.但是,如果我运气不好,那些0.2247199分布在7位有效数字的左侧和右侧,所以我应该打印9位小数.
我的分析是否正确?所有情况下都是9位十进制数字吗?喜欢printf("%.9g", x);?
是否有标准函数将float转换为具有该值所需的最小小数位数的字符串,在7或8足够的情况下,所以我不打印不必要的数字?
注意:我不能使用十六进制浮点文字,因为标准C++不支持它们.