PHP substr not working on Safari IOS



我有一个JavaScript,该JavaScript从用户移动设备收集纬度和经度,并通过AJAX发送到PHP脚本。由于变量的小数点很长,因此我需要将它们修剪成,以便我可以将它们与每个位置的数据库中的一个点进行比较。使用Chrome和Opera在iOS上的Android上正常工作,它根本无法修剪变量,因此它总是对我的IF语句显示负面。

list($lat,$long) = 
explode(',',htmlentities(htmlspecialchars(strip_tags($_GET['latlng']))));
echo 'Latitude: '.$lat.' Longitude: '.$long.'<br />';
$_SESSION['clat'] = substr($lat,0,-5);
$_SESSION['clong'] = substr($long,0,-4);
echo 'Latitude: '.$_SESSION['clat'].' Longitude: '.$_SESSION['clong'].'<br 
/>';
if($_SESSION['lat'] == $_SESSION['clat'] && $_SESSION['long'] == 
$_SESSION['clong']) {
echo "You are here";

因此,应该修剪设备的原始值,而$ _session的" clat"one_answers" clong"应该被修剪,以便可以将它们与数据库中的值进行比较($ _session ['lat']和long(

$ lat和$ _session ['clat']在iOS设备上的Echod时相同。有原因是不起作用吗?有其他吗?

如果要将小数点设置为特定金额,请使用圆。以下将使数字到6个小数点:

round($mynumber, 6);

如果我使用1.234567890,我将获得1.234568(请注意,它是最后一位数字。(

(

另外,您可以正确比较小数号。我不知道为什么要教程序员正确地做这么困难。假设我有两个小数点/浮点/双数,我想看看它们是否相同。我采取绝对差异并将其比较到一定程度的准确性...

if(abs(a-b)<0.000001) // they are close enough to being the same

您可以在查询中这样做吗?当然:

select * from sometable where abs(myfield-1.23456789)<0.00001

我建议做正确的操作,但是您可以使用圆。我强烈建议不要使用subttr来舍入数字。

最新更新