如何在PHP中强制浮点数末尾包含3个零的小数点


How to force 3 decimal places containing zeros at the end of a float in PHP

我有一个很长的字符串格式的数字:

$startdate = "1437925621000";

它实际上是一个unix时间戳,但当我将它从日期对象转换为unix时间戳时,它变成了一个字符串。

我需要将其转换为:1437925621.000,因此我编写了一小段代码,在正确的位置向字符串添加小数点。此时,它仍然是一个字符串。

它需要是一个浮点数,但是,为了比较,所以我把它转换成一个浮点数,像这样:

$startdate = floatval($startdate);

但是当我把它转换成浮点数的时候,小数点后面的三个0被削掉了我需要它们在那里

我也尝试使用number_format,但它返回一个字符串,当我将它转换回浮点数时,小数点再次被截断。还有别的办法吗?

我不需要打印这个数字。我需要比较unix时间戳。我正在查询一个数据库,其中包含存储为带有4位小数的日期。它们用作时间戳,但在MySQL数据库中以小数形式存储。

我引用的数字在查询中用于根据日期从该数据库中选择记录,该日期存储为带有4位小数的小数。如果没有小数点,就不能正确比较。

你可以给floatval($startdate)加0.0001,给其他变量加0.0001来比较它们

floatval($startdate) + 0.0001 === $otherVar + 0.0001