在perl文档的哪个地方提到了什么时候可以得到指数格式?
$ perl -wle 'print for 0.001, 0.0001, 0.00001, 1.00001;' 0.001 0.0001 1e-05 1.00001
不,我今天 * 不是 * 在谈论 printf。它在哪里说“比0.0001小的数字将被不同地打印”?
xxls0lw81#
它不是很清楚,也不容易找到,不。你必须深入内部才能找到任何相关的东西。来自佩拉皮:Gconvert此预处理器宏被定义为将浮点数转换为不带尾随小数点的字符串。这模拟了sprintf("%g")的行为,但有时效率更高。如果gconvert()不可用,但gcvt()删除了尾随小数点,则使用gcvt()。如果所有其他方法都失败,则使用使用sprintf("%g")的宏。perlnumber说从原生浮点数到十进制字符串的转换“涉及到C编译器执行的步骤”,我认为这意味着前面提到的Gconvert宏。因此,您必须研究这些函数在系统上的行为,以了解当它在常规和科学记数法之间切换以呈现数字时的具体细节。
Gconvert
sprintf("%g")
gconvert()
gcvt()
1条答案
按热度按时间xxls0lw81#
它不是很清楚,也不容易找到,不。你必须深入内部才能找到任何相关的东西。
来自佩拉皮:
Gconvert
此预处理器宏被定义为将浮点数转换为不带尾随小数点的字符串。这模拟了
sprintf("%g")
的行为,但有时效率更高。如果gconvert()
不可用,但gcvt()
删除了尾随小数点,则使用gcvt()
。如果所有其他方法都失败,则使用使用sprintf("%g")
的宏。perlnumber说从原生浮点数到十进制字符串的转换“涉及到C编译器执行的步骤”,我认为这意味着前面提到的
Gconvert
宏。因此,您必须研究这些函数在系统上的行为,以了解当它在常规和科学记数法之间切换以呈现数字时的具体细节。