如何将值范围从0-1缩放到0-10

时间:2016-08-16 05:17:02

标签: c# math

我开发了一款允许在iOS上播放录音的应用。在iOS上,音量范围是0 - 1,即它返回0或1.出于表示目的,我想将该范围缩放到0-10。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

缩放通常与乘法相关联。在这里,您只需要应用比例因子10,因此,将所有值乘以10。

答案 1 :(得分:2)

假设您想要线性缩放(a),将它乘以十是一个简单的问题。我毫不犹豫地陈述了明显的(即,不想听起来居高临下)但是,你不太可能不知道如何做到这一点:

scaledValue = inputValue * 10;

当然,如果输入是你想要的范围0..10,那么当你将它传递给需要的iOS函数时,你需要将它除以10 0..1

请确保您对输入和输出比例使用某些描述的浮点值,否则您可能会遇到缩放无法按预期工作的问题(如果您想要从0到0的整数值)十,在完成所有缩放之后,将其转换为整数作为最后一步。)

(a)如果您想要的缩放是非线性的,您需要告诉我们您要使用的公式,请记住C#表达式将与你给。当然,正如任何Spinal Tap粉丝都会告诉你的那样,最好的放大器可以达到11: - )

答案 2 :(得分:1)

假设您的号码是浮动的

float map(float x, float in_min, float in_max, float out_min, float out_max
{
    return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

in_min -> in_max是您的输入范围

out_min -> out_max是您的输出范围

用法

float mappedValue = map(VALUE, 0, 1, 0, 10);

引自https://www.arduino.cc/en/Reference/Map