例如,我使用rand(10000000, 3000000);
生成一些緯度和經度數據。但我需要計算兩個位置之間的距離,所以基本上我需要將我的結果(例如22049256
)轉換爲22.049256
以便傳遞給我的函數。在兩個第一個數字後面加上一個小數
如何以最少量的資源最有效地實現這一目標?我有整數22049256
,需要轉換爲float 22.049256
。
例如,我使用rand(10000000, 3000000);
生成一些緯度和經度數據。但我需要計算兩個位置之間的距離,所以基本上我需要將我的結果(例如22049256
)轉換爲22.049256
以便傳遞給我的函數。在兩個第一個數字後面加上一個小數
如何以最少量的資源最有效地實現這一目標?我有整數22049256
,需要轉換爲float 22.049256
。
$foo = rand(10000000, 30000000);
$foo /= 1000000;
echo $foo;
簡單的方法是治療作爲一個字符串的數量和遍歷它,添加小數點在適當的位置。
$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);
如果你總是希望前兩位後的位數,即應做的伎倆。
<?php
$n = rand(10000000, 3000000);
$len = strlen($n);
$div = pow(10, $len - 2);
$n /= $div;
var_dump($n);
?>
http://codepad.viper-7.com/Nrql15
基本上只是通過檢查多少個字符中有你原來的號碼發了數除以。
您的最小值大於最大值。錯字? – Corubba