1

我正在开发一些 PHP 代码,它与一个正在时钟上移动物理指针的硬件进行通信。基本上,我有一个介于 000 和 180 之间的数字(分钟)范围,它们对应于伺服位置 000 到 180。

我面临的问题是我现在发现伺服只能移动到 000 到 165 之间的值。

有没有办法将 000 到 180 范围内的给定数字缩放到 000 到 165 范围内?我一直在为此绞尽脑汁,任何帮助将不胜感激。

示例函数:

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

1 回答 1

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));
}
于 2012-04-11T20:39:20.350 回答