У меня есть число от 0 до 1024, и мне нужно, чтобы преобразовать его в диапазоне от 0 до 180.Преобразовать диапазон номеров
Я нашел ответ на математику за это here однако я не могу похоже, все в порядке. Вот что у меня есть
int treatValue(int data) {
int OldRange = (1024 - 0);
int NewRange = (180 - 0);
int NewValue = (((data - 0) * NewRange)/OldRange) + 0;
return NewValue;
}
Где данные - значение от 0 до 1024. Что у меня получилось?
Вот некоторые результаты, используя этот код выше.
X: 24 (506) Y: 22 (493)
X: 24 (506) Y: 21 (489)
X: 24 (506) Y: 20 (481)
X: 24 (506) Y: 19 (475)
X: 24 (506) Y: 17 (463)
X: 24 (506) Y: 11 (432)
X: 24 (506) Y: 9 (418)
X: 24 (506) Y: 8 (410)
X: 24 (506) Y: 7 (405)
X: 24 (506) Y: 6 (399)
X: 24 (506) Y: 3 (384)
X: 24 (506) Y: 1 (374)
X: 24 (506) Y: 0 (365)
X: 24 (506) Y: -1 (356)
X: 24 (506) Y: -4 (341)
X: 24 (506) Y: -10 (307)
X: 24 (506) Y: -14 (279)
X: 24 (506) Y: -17 (263)
X: 24 (506) Y: -20 (249)
X: 24 (506) Y: -24 (227)
X: 24 (506) Y: -27 (209)
X: 24 (506) Y: -29 (197)
X: 24 (506) Y: -30 (188)
X: 24 (506) Y: 31 (181)
X: 24 (506) Y: 29 (168)
X: 24 (506) Y: 27 (158)
X: 24 (506) Y: 24 (137)
X: 24 (506) Y: 19 (110)
X: 24 (506) Y: 14 (81)
X: 24 (506) Y: 10 (61)
X: 24 (506) Y: 6 (38)
X: 24 (506) Y: 2 (16)
X: 24 (506) Y: 1 (6)
X: 24 (506) Y: 0 (0)
(данные/1024) * 180 –
Почему вы думаете, что делаете что-то не так - какое неожиданное поведение вы видите? Кроме того, добавьте соответствующий тег для того, на каком языке программирования это должно быть. C? C#? Ява? и т. д. – TypeIA
@PeteR Это целочисленная математика, поэтому выполнение этого пути обречено на сбой (результат всегда будет 0, если только 'data == 1024'). – TypeIA