2012-04-11 6 views
1

私はクロックで物理的な手を動かしているハードウェアと通信しているPHPコードを開発しています。基本的には、サーボ位置000〜180に対応する000と180の間の数値(分)があります。PHPで数値の範囲を拡大するには?

私が直面している問題は、サーボが000 165.

与えられた数値を000から180の範囲で000から165の範囲にスケーリングする方法はありますか?私はこの1つに私の頭脳をラッキングしてきた、どんな助けも大いに感謝されるだろう。

例機能:

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

助けてくれてありがとう!私はプログラミングで大丈夫です、私は数学の問題でちょうどごみです! – kirgy

答えて

5

それは浮動小数点を取ることができますか?

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

ない場合は、最も近い整数に丸めることは、うまくいけば大丈夫です:

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

---編集---
コメントで示唆したように、3桁の文字列が容易に提供されていますby:

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

私は愚かで、間違った質問を読んでいるかどうかを調べようとしていました。本当にそれは簡単な質問だったのでしょうか、それとも間違って読んでいるのでしょうか。 Hehe。 – ceejayoz

+0

浮動小数点を取ることはできません。数字にもかかわらず3桁でなければなりません。したがって、10は010になります。しかし、私は最も近い数字に丸めて3桁の数字を作成する事前に書かれた関数を持っています。文字列に変換し、strlen関数を使用します。 ありがとうございました。私はプログラミングで大丈夫です、私は数学の問題でちょうどごみです! – kirgy

+0

@ceejayoz:それが意図的ではないと思わない限り、私は額面で質問をします。単純な単純さは私たちの個人的なやりとりではあまりにも稀です。 – wallyk

関連する問題