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

时间:2015-06-05 23:04:51

标签: php string parsing numbers

我正在开发一个地图,我必须在Parse数据库中保存这些参数:

纬度:20.6350。长:-103.5334

问题是当我将它们转换为数字时,该函数将20.6350转换为20.635。 ¿我能做些什么来保持最后的零?

2 个答案:

答案 0 :(得分:1)

您应该指定sig figs并且它们将正确显示。

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

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

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

<强>更新

根据您上面的评论,您所拉的字符串看起来长度不一样,对吗?

为什么不在小数点后得到sig figs的数量,然后将其用作number_format()中的第二个参数?我确信有一种更合适的方法可以处理,但我相信这会奏效。

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

或一行

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

答案 1 :(得分:0)

如果您想在数据库中使用带有四位小数的数字,则可以使用十进制类型。在长度下,您可以输入 6,4 ,表示总共最多6位数,后面点4位数。

如果要在PHP中显示数字,可以使用number_format()函数

echo number_format($longitude, 4);