Sprintf函数,将科学记数法与固定小数量PHP相结合


Sprintf function, combine scientific notation with fixed amount of decimals PHP

我有一个数据库表,其中有一个名为"format"的列,我将在其中放入指定的Sprintf值。

如果我想要科学价值,那么我只需要把'%E'放在列中。但是我可以将这个值与rtrim十进制四舍五入合并吗?例如,如果我的值是

$number1 = 126;
echo(sprintf('%E', $number1));

我可以使用rtrim函数来取整E之前的尾随0,而不是获得1.260000E+2,这样我的值就变成了1.26E+2吗?

如果我的变量是

   $number1 = 12666666;

那么我还是想把它打印成1.266667E+7.你们有解决这个问题的好办法吗?

使用preg_replace():

echo(sprintf('%E', 126));  // 1.260000E+2
echo(preg_replace('/0+E/', 'E', sprintf('%E', 126))); // 1.26E+2
echo(preg_replace('/0+E/', 'E', sprintf('%E', 12666666))); // 1.266667E+7