Я пытаюсь сопоставить целое число, которое я сохранил в файле, через который я oop, со значением, которое я сохранил в переменной, которая постоянно меняется - PullRequest
1 голос
/ 22 января 2020

Я создал файл, в котором много значений. Я читаю эти значения в переменную (var1), когда моя программа перебирает файл. Затем у меня есть другая переменная (var2), которая принимает плавающий из API. Я хотел бы, чтобы определенное действие имело место, если значение в var2 равно значению в var 1. Кажется простым. Однако значение в var2 - это число с плавающей точкой - как лучше удалить с плавающей запятой и после этого цифры, чтобы они воспринимались как целое число?

Сделав это, я бы хотел дать немного свободы для значение в var1. Так, например, я хотел бы, чтобы условие выполнялось, если значение в var2 находилось в пределах определенного расстояния от var 1, а не совпадало с целым числом для целого числа - например. условие было бы выполнено, если бы var1 = 1000 и var2 = 1003. Вместо того, чтобы их обоих оценивать как 1000.

Я думаю, что это возможно при использовании функции диапазона, но я не уверен, как go об этом пока нет.

1 Ответ

1 голос
/ 22 января 2020

Есть несколько способов округлить ваш поплавок.

  1. int (): усекает число с плавающей точкой. int (3.1) = 3

  2. round (): округляет число с плавающей точкой до ближайшего целого числа. round (3.6) = 4

  3. math.ceil (): округляет число до ближайшего целого числа. math.ceil (3.1) = 4

  4. math.floor (): округляет число с плавающей точкой до ближайшего целого числа. math.floor (3.6) = 3

Вы можете проверить абсолютное значение разницы между var2, заключенным в любой из них и var1, и установить приемлемое значение для ошибки .

import math

var1 = 1000
var2 = 1003.2

acceptable_error = 5

print(abs(int(var2) - var1) <= acceptable_error)
print(abs(round(var2) - var1) <= acceptable_error)
print(abs(math.ceil(var2) - var1) <= acceptable_error)
print(abs(math.floor(var2) - var1) <= acceptable_error)

Вывод:

True
True
True
True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...