我有一个相当简单的公式,虽然它涉及一个大数字,基本上是这样的:
$one = 1300391053;
$two = 0.768;
// $millitime = 1.30039116114E+12
$millitime = ($one+$two)*1000;
我知道这是技术上正确的答案,但我希望得到1300391053768
。这样做的目的是以毫秒为单位获得时间。我可以将两者合并并删除小数,尽管感觉有点奇怪。
有没有办法让它“正确”存储?
[如旁注,似乎并非所有装置都处理相同的情况。我的本地PHP安装(MacOS上的v5.3)返回sci表示法,但我运行相同的代码writecodeonline.com并获得我期望/想要的东西。 ]
答案 0 :(得分:5)
使用此选项以“标准”表示法打印,
$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
我想这些例子会有所帮助
答案 1 :(得分:3)
尝试使用php的number_format()
这样:
$one = 1300391053;
$two = 0.768;
$millitime = number_format(($one+$two)*1000);
答案 2 :(得分:1)
什么是“正确存储”? 如果您使用该值“正确”存储,唯一的问题是您希望如何格式化输出。您可以使用number_format或sprintf。print_r($millitime);
,您将获得1300391053768
。
echo sprintf('%.0f', $millitime) . PHP_EOL; // 1300391053768
echo sprintf('%e', $millitime) . PHP_EOL; // 1.300391e+12
echo number_format($millitime, 0, '.', '') . PHP_EOL; // 1300391053768