We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
由于本人数学菜的抠脚,在日常工作中遇到的一个关于百分比换算的问题。
最开始想的时候觉得挺简单的,打算写成函数调用的时候,居然无法立刻写出来,经过一番思考后方才写了出来。
代码是写出来了,感觉理不顺,随尝试用文字写出来,便于自己更好的理解。
假设存在一个区间范围数(例如5-15),我们想把这个区间数转换成设定好的区间百分比(例如0.4~0.8)。
最大区间值15转换后变成0.8,最小区间值5转换后变成0.4.
把5 ~ 15的区间数想象成一个直线,要把它映射到另外一条直线上并且一一对应。
第一步,先化简,先把5 ~ 15和0.4 ~ 0.8归零处理,即最大值减去最小值,变成0 ~ 10和0 ~ 0.4;经过这么一步的处理,突然就变得简单起来了
要做的就是把0 ~ 10映射到0 ~ 0.4,那还不简单,获取输入数的当前百分比再乘以0.4就搞定了。。。。最后再加上最小值,整个换算就完成了。。。。。 PS:输入的值也需要进行归零处理
const MAX_PERCENT_VALUE = 0.8; const MIN_PERCENT_VALUE = 0.4; const IS_TRANSPARENCE_MIN = 5; const IS_TRANSPARENCE_MAX = 15; function transform(diffVal) { return (diffVal - IS_TRANSPARENCE_MIN)/(IS_TRANSPARENCE_MAX-IS_TRANSPARENCE_MIN) * (MAX_PERCENT_VALUE-MIN_PERCENT_VALUE) + MIN_PERCENT_VALUE } console.log(transform(5)) // 0.4 console.log(transform(6)) // 0.44 console.log(transform(7)) // 0.48 console.log(transform(15)) // 0.8
最后总结,其实跟随机数取区间范围是一个原理,但是换了个方式出现我就突然转不出来了,尴尬(─.─|||)
The text was updated successfully, but these errors were encountered:
No branches or pull requests
由于本人数学菜的抠脚,在日常工作中遇到的一个关于百分比换算的问题。
最开始想的时候觉得挺简单的,打算写成函数调用的时候,居然无法立刻写出来,经过一番思考后方才写了出来。
代码是写出来了,感觉理不顺,随尝试用文字写出来,便于自己更好的理解。
假设存在一个区间范围数(例如5-15),我们想把这个区间数转换成设定好的区间百分比(例如0.4~0.8)。
最大区间值15转换后变成0.8,最小区间值5转换后变成0.4.
思考过程:
把5 ~ 15的区间数想象成一个直线,要把它映射到另外一条直线上并且一一对应。
第一步,先化简,先把5 ~ 15和0.4 ~ 0.8归零处理,即最大值减去最小值,变成0 ~ 10和0 ~ 0.4;经过这么一步的处理,突然就变得简单起来了
要做的就是把0 ~ 10映射到0 ~ 0.4,那还不简单,获取输入数的当前百分比再乘以0.4就搞定了。。。。最后再加上最小值,整个换算就完成了。。。。。
PS:输入的值也需要进行归零处理
最后总结,其实跟随机数取区间范围是一个原理,但是换了个方式出现我就突然转不出来了,尴尬(─.─|||)
The text was updated successfully, but these errors were encountered: