Php 我可以阻止此操作返回科学记数法中的答案吗?

Php 我可以阻止此操作返回科学记数法中的答案吗?,php,math,Php,Math,我得到了一个相当简单的公式,虽然它涉及一个很大的数字,基本上是这样的: $one = 1300391053; $two = 0.768; // $millitime = 1.30039116114E+12 $millitime = ($one+$two)*1000; 我知道这是技术上正确的答案,但我希望得到1300391053768。其目标是以毫秒为单位获取时间。我可以把两者结合起来,去掉小数点,尽管这感觉有点奇怪 有没有办法让它“正确”存储 [作为旁注,似乎并非所有安装都能处

我得到了一个相当简单的公式,虽然它涉及一个很大的数字,基本上是这样的:

$one = 1300391053;   
$two = 0.768;

// $millitime = 1.30039116114E+12    
$millitime = ($one+$two)*1000;
我知道这是技术上正确的答案,但我希望得到
1300391053768
。其目标是以毫秒为单位获取时间。我可以把两者结合起来,去掉小数点,尽管这感觉有点奇怪

有没有办法让它“正确”存储

[作为旁注,似乎并非所有安装都能处理相同的问题。我的本地PHP安装(MacOS上的v5.3)返回sci符号,但我运行了相同的代码writecodeonline.com,得到了我期望/想要的结果。]

尝试使用PHP的

因此:

什么是“妥善储存”?如果使用
print\r($millitime)您将获得
1300391053768
。值被“正确”存储,唯一的问题是您希望如何格式化输出。你可以用它,也可以用它

用这个来打印“标准”符号

$big_integer = 1202400000;  
$formatted_int = number_format($big_integer, 0, '.', ''); 
echo $formatted_int; //outputs 1202400000 as expected 

$sample_float = (float)100000 //float; 
$formatted_float = number_format($sample_float, 2, '.', ''); 
echo $formatted_float; //outputs 100000.00 as expected

我想这些例子会有所帮助

CZ技术提出了一个很好的观点——数字被存储为一个数字(也就是说,正确地说),它只是用科学的符号来显示。您的解决方案在显示器上,而不是在存储器上。实际上,如果您使用print\r($millitime),在不同版本的PHP上会得到不同的结果,这就是我的观点。@Will,好的。我在你编辑之前就发布了。不管怎样,剩下的应该可以。您也可以通过将小数从
0
更改为您想要的任何十进制值来设置浮点格式,如本答案中的
8
。它将阻止PHP以科学记数法打印浮点。
echo sprintf('%.0f', $millitime) . PHP_EOL; // 1300391053768
echo sprintf('%e',   $millitime) . PHP_EOL; // 1.300391e+12

echo number_format($millitime, 0, '.', '') . PHP_EOL; // 1300391053768
$big_integer = 1202400000;  
$formatted_int = number_format($big_integer, 0, '.', ''); 
echo $formatted_int; //outputs 1202400000 as expected 

$sample_float = (float)100000 //float; 
$formatted_float = number_format($sample_float, 2, '.', ''); 
echo $formatted_float; //outputs 100000.00 as expected