C# 如何将浮动范围(x到y)表示为0-1范围内的一组双精度,其中x为0,y为1?

C# 如何将浮动范围(x到y)表示为0-1范围内的一组双精度,其中x为0,y为1?,c#,math,formula,C#,Math,Formula,正如问题标题中所述,我正在寻找一种有效的方法来表示一组介于(包括)值x和y之间的浮点值,在一组0-1的双精度中,其中x等于0,y等于1。然后填入中间的值 假设x是5,y是20 现在,5=0,20=1。 是否有一个数学函数来确定c#中10的值 我觉得我只是想不出一种可以通过编程实现的方法,在这里我可以交换x和y的值。x和y的值将是个位数。0-1范围内的值的精度应为2个十进制值。非常感谢您的帮助,谢谢 您可以创建自己的函数,该函数接受x和y,第三个参数是您要映射的值,然后返回它,如下所示: Sta

正如问题标题中所述,我正在寻找一种有效的方法来表示一组介于(包括)值x和y之间的浮点值,在一组0-1的双精度中,其中x等于0,y等于1。然后填入中间的值

假设x是5,y是20

现在,5=0,20=1。 是否有一个数学函数来确定c#中10的值


我觉得我只是想不出一种可以通过编程实现的方法,在这里我可以交换x和y的值。x和y的值将是个位数。0-1范围内的值的精度应为2个十进制值。非常感谢您的帮助,谢谢

您可以创建自己的函数,该函数接受x和y,第三个参数是您要映射的值,然后返回它,如下所示:

 Static double Map(float x, float y, float inputValue){ Return Convert.ToDouble((inputValue-x)/(y-x));}

从逻辑的角度来看,您正试图找出InputValue在x和y之间的分数。想象一条长路,中间有人。要想知道他是怎么走的,你必须知道他走了多远,这是他的位置减去起始位置,然后除以道路的总距离,在这种情况下是y(终点)-x(起始位置)

你认为有什么比线性映射更复杂的吗?你的意思是
(value-lower)/(up-lower)
?是否进行线性插值(如@harold建议),或使用其他函数?是的,我正在进行线性插值,并将尝试@harold建议的方法。谢谢如果你不能做基本数学,那么编程就不适合你。谢谢你,你帮助我理解了评论中的答案是如何工作的。