Math 根据反转范围计算百分比
我有一个返回倒车档的传感器。也就是说,在100%时,我得到的值为33,在0%时,我得到的值为116 通常我会用这个公式Math 根据反转范围计算百分比,math,Math,我有一个返回倒车档的传感器。也就是说,在100%时,我得到的值为33,在0%时,我得到的值为116 通常我会用这个公式 percentage = (value - min) / (max - min) 但是,由于传感器的值是反向的,我如何修改公式以获得百分比?考虑到: 值:要转换的传感器读数 min:传感器返回的最小值 max:传感器返回的最大值 根据您提供的表达式,百分比可以计算为: percentage = 1 - ((value - min) / (max - min)) 如果做一
percentage = (value - min) / (max - min)
但是,由于传感器的值是反向的,我如何修改公式以获得百分比?考虑到:
:要转换的传感器读数值
:传感器返回的最小值min
:传感器返回的最大值max
percentage = 1 - ((value - min) / (max - min))
如果做一些代数运算,可以将表达式简化为:
percentage = (max - value) / (max - min)
or
percentage = (value - max) / (min - max)
这些百分比将在0和1之间变化,就像原始表达式一样。如果需要整数表示,只需将结果乘以100。我算出来了
P = ( ( ( value - 33 ) / ( 116 - 33 ) ) * 100 ) - 100)
然后我就把它从负数转换成正数我不明白你的逻辑。你能解释一下为什么100变成33,0变成116吗?传感器测量距离,在传感器能测量的最远距离,我得到的读数是33v,这将是100%。另一方面,当传感器没有读取任何距离时,我得到116v,这将是0%。我投票结束这个问题,因为它与编程或软件开发无关。原始公式返回的值介于0和1之间。不确定为什么要编辑答案以返回0到100之间的值。这使得答案不一致。公式中的min是最小值(33)还是传感器上的最小读数(116)?此表达式与原始表达式几乎相同。唯一的区别是它返回一个介于0和100之间的值,而不是0和1。这里33将给你0,当你在最初的问题上说它应该返回100%是的,我忘记了最后一部分((value-33)/(116-33))*100)-100)比:
percentage=100*(max-value)/(max-min)
或在你的特殊情况下100*(116-value)/(116-33)更做作
正如我在回答中所建议的那样。