将字符串转换为数字而不丢失小数
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);
我正在开发地图,我必须将此参数保存在 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);