将字符串转换为数字而不丢失小数

Convert strings to numbers without losing decimals

我正在开发地图,我必须将此参数保存在 Parse 数据库中:

纬度:20.6350。多头:-103.5334

问题是当我将它们转换为数字时,该函数将 20.6350 转换为 20.635。 ¿我该怎么做才能保留最后一个零?

您应该指定信号图,它们将正确显示。

$lat = "20.6350";
$lng = "-103.5334";

print number_format($lat, 4); // 4 sig figs
print number_format($lng, 4);

有关其他格式信息,请参阅 http://php.net/number_format

更新

根据您上面的评论,您拉动的绳子长度似乎有所不同,对吗?

为什么不只获取小数点后的数字,然后将其用作 number_format() 中的第二个参数?我确定有更合适的处理方式,但我相信这会奏效。

// Calculate sig figs
$length = strlen($lng) - (stripos($lng, '.') + 1);
number_format($lng, $length);

或一行

number_format($lng, strlen($lng) - (stripos($lng, '.') + 1));

如果您希望数据库中的数字有四位小数,您可以使用 Decimal 类型。在length下可以输入6,4代表最多6位,小数点后4位。

如果您想显示 PHP 中的数字,您可以使用 number_format() 函数

echo number_format($longitude, 4);