使用PHP的sprintf函数的浮点数格式控制
控制浮点数打印格式印刷和浮点数格式控制是常见的功能函数。浮点数由格式% f控制,默认情况下保留小数点后的6位数字。
复制代码代码如下所示:
sprintf(%,3.1415926); / /结果:3.141593
但有时我们要控制打印的宽度和小数位数。我们应该使用% m.nf格式,其中m表示打印号码的整体宽度,n为小数位数。例如:
复制代码代码如下所示:
sprintf(% 9.3f,3.1415926); / /右对齐:数字足够的空间完成。结果:3.142
sprintf(% -9.3f,3.1415926); / /左:数字足够的空间完成。结果:3.142
sprintf(%。3F,3.1415926); / /没有指定的总宽度,结果:3.142
注意一个问题
复制代码代码如下所示:
$ = 100;
sprintf(%。2f
sprintf(%。2f
这两个结果真的一样吗虽然看起来是一样的,但以下原因可能是启发性的。
原因是,对方不知道对应的数字格式控制器一%当参数堆栈压。函数实现功能本身不知道什么时候被压入栈是一个整数,然后保存整数$num可怜的4个字节为浮点格式强行,不由分说解释全乱了。