繁体   English   中英

如何将浮动比例转换为长尺度?

[英]How to convert a float scale to long scale?

我有两个刻度,一个是x值刻度,浮点值从最小x值开始,以最大x值结束。我将这些值称为min_x和max_x。 我有另一个具有长值的刻度,从0开始并以最大时间值结束,我称之为max_tim值。

如何将浮动xvalue转换为相应的长时间值?

我在android studio上尝试了一些东西但是我得到的值不正确。

private long max_tim,tim;
private float min_x,max_x,x_val;

tim=((long)((x_val-min_x)/(max_x-min_x)))*max_tim;

我有正确的max_x和min_x的值,但不是两者之间的值。我认为我有正确的逻辑,但认为它错误的类型转换。请帮助我。

float range = max_x - min_x;  // get the absolute range of the first scale
float offset = x_val - min_x; // normalize the value on the first scale to the absolute range
tim = (long)((offset*max_tim)/range); // convert to the new scale, which is already in absolute values

例如,如果您的x值标度是farenheit,范围是32.0 - 212.0。 而你的“长尺度”是从0到100摄氏度。 而你想将50华氏度转换为摄氏度

range = 212-32; // 180
offset = 50-32; // 18 
tim = (18*100)/180 = 10;

50°F == 10°C

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM