在cakephp3中使用数学函数时遇到的格式不正确的数值
我已经看到了这个错误的所有过去的例子,但例子是一个日期函数。我的问题是不同的,因为我使用的是数学函数,它抛出了以下错误: 在第257行遇到格式不正确的数值 下面是我的代码片段——我正在cakephp3.x上编写代码在cakephp3中使用数学函数时遇到的格式不正确的数值,php,Php,我已经看到了这个错误的所有过去的例子,但例子是一个日期函数。我的问题是不同的,因为我使用的是数学函数,它抛出了以下错误: 在第257行遇到格式不正确的数值 下面是我的代码片段——我正在cakephp3.x上编写代码 foreach($query as $row) { $lat=$row->lat.'<br>'; $lng=$row->lng.'<br>'; $lat1=$formlatitude; $lon1=$formlong
foreach($query as $row)
{
$lat=$row->lat.'<br>';
$lng=$row->lng.'<br>';
$lat1=$formlatitude;
$lon1=$formlongitude;
$lat2=$lat;
$lon2=$lng;
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
$miles=$miles * 1.609344;
//echo $miles;
//Although distance is calculated in kms only
if($miles<10)
{
echo $miles;
}
}
你正在设置
$lat=$row->lat.'<br>';
所以现在不管$lat1
包含什么,$lat2
都是一个包含HTML的字符串,而不是一个数字
接下来,您将尝试使用$lat2
作为以下内容中的数字:
deg2rad($lat2)
如果您使用:
$lat2=$row->lat;
相反
我认为通过确保您知道每个变量中的内容,可以更好地解决您面临的问题。使用像
lat
这样的名称在一个位置引用字符串,在另一个位置引用数字,随着时间的推移,可能会导致问题。Learn。请提供您的错误消息!这对我们来说会更容易帮助你。它抛出了一个错误:在第257行遇到一个格式不正确的数值,它是$dist=sin(deg2rad($lat1))*sin(deg2rad($lat2))+cos(deg2rad($lat1))*cos(deg2rad($lat2))*cos(deg2rad($theta));此行尝试:$lat1=(float)$formlatitude代码>您的国际语言/数字设置是什么?如果$lat2=$lat
则它包含垃圾,因为$lat=$row->lat.
'代码>这将导致deg2rad($lat2)
呕吐。为什么要将HTML添加到应该是数值的内容中?如果您使用$lat2=$row->lat
,它可能会起作用。酷!问题是我添加了
标记,后来它就出现在这个数学函数代码上了。我正在通过添加
标记进行调试,所以忘了删除该标记。谢谢酷!问题是我添加了
标记,后来它就出现在这个数学函数代码上了。我正在通过添加
标记进行调试,所以忘了删除该标记。谢谢
deg2rad($lat2)
$lat2=$row->lat;