我正在使用rand(10000000, 3000000);
生成一些纬度和经度数据。但我需要计算两个位置之间的距离,所以基本上我需要将我的结果转换为22049256
到22.049256
才能传递给我的函数。
如何使用最少量的资源最有效地实现这一目标?
TL; DR
我有整数22049256
,需要转换为float 22.049256
。
答案 0 :(得分:6)
除以1M?
22049256 / 1000000 = 22.049256
答案 1 :(得分:4)
$foo = rand(10000000, 30000000);
$foo /= 1000000;
echo $foo;
答案 2 :(得分:0)
如果你总是想要前两位数之后的小数,那就应该这样做。
<?php
$n = rand(10000000, 3000000);
$len = strlen($n);
$div = pow(10, $len - 2);
$n /= $div;
var_dump($n);
?>
http://codepad.viper-7.com/Nrql15
基本上只需要通过检查原始数字中有多少个字符来划分数字。
答案 3 :(得分:-2)
最简单的方法是将数字视为一个字符串并迭代它,在适当的位置添加小数点。
$new_number = '';
for($i=0;$i<strlen((string)$number;$i++)
{
if($i == 2)
$new_number .= '.';
$new_number .= substr((string)$number, $i, 1);
}
编辑:
另一种可能性是除以1000000并运行number_format以确保正确的小数位:
$new_number = number_format($number/1000000, 6);