2012-01-23 55 views
0

例如,我使用rand(10000000, 3000000);生成一些緯度和經度數據。但我需要計算兩個位置之間的距離,所以基本上我需要將我的結果(例如22049256)轉換爲22.049256以便傳遞給我的函數。在兩個第一個數字後面加上一個小數

如何以最少量的資源最有效地實現這一目標?我有整數22049256,需要轉換爲float 22.049256

+0

您的最小值大於最大值。錯字? – Corubba

回答

6

除以1M?

22049256/1000000 = 22.049256

+0

這會很好,只要記住如果你明確地聲明瞭變量,結果將是一個浮點數。 – Kypros

+0

謝謝,我現在自己弄清楚了這一點。但再次,我不是那麼明亮:)再次感謝。 – sed

4
$foo = rand(10000000, 30000000); 
$foo /= 1000000; 
echo $foo; 
-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); 
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

基本上只是通過檢查多少個字符中有你原來的號碼發了數除以。

相關問題