2012-04-11 56 views
1

我正在開發一些PHP代碼,它正在與時鐘上移動物理手的一塊硬件進行通信。基本上,我有一個範圍在000到180之間的數字(分鐘),對應於伺服位置000到180.在PHP中擴展一系列數字?

我面對的問題是我現在發現伺服只能移動到000和165.

是否有將000到180的範圍內的給定數字縮放到000到165範圍的方法?我一直在絞盡腦汁,任何幫助將不勝感激。

實例功能:

function convertScale($handVal) 
{ 
//some code to convert scale from 000-180 to 000-165 
return $convertedPos; 
} 
+0

感謝您的幫助,它似乎比它更簡單!我很好,編程,我只是在數學問題的垃圾! – kirgy 2012-04-11 20:44:10

回答

5

它可以採取浮點?

function convertScale($handVal) 
{ 
    return $handVal * 165.0/180.0; 
} 

如果沒有,取整到最接近的整數是希望好:

function convertScale($handVal) 
{ 
    return round($handVal * 165.0/180.0); 
} 

--- ---編輯
正如註釋提到的,很容易提供一個3位串通過:

function convertScale($handVal) 
{ 
    return sprintf ("%03d", round($handVal * 165.0/180.0)); 
} 
+0

我試圖弄清楚我是否正在愚蠢地讀錯了問題。猜猜這確實是一個簡單的問題,或者你也讀錯了。呵呵。 – ceejayoz 2012-04-11 20:41:37

+0

它不能採用浮點數,即使有數字,它也必須是三位數字,所以10會是010.但是我有一個預先寫好的函數,它將四捨五入到最接近的數字,並創建一個3位數的數字轉換爲一個字符串並使用strlen函數。 感謝您的幫助。我很好,編程,我只是在數學問題的垃圾! – kirgy 2012-04-11 20:43:12

+0

@ceejayoz:我以面值問題提出問題,除非這似乎不是意圖。直截了當的簡單性在我們的個人交互中非常罕見。 – wallyk 2012-04-11 20:43:13