Я ищу функцию, которая сопоставляет целое число X с 0.X без использования цикла

#python #algorithm #math #mapping

#python #алгоритм #математика #сопоставление

Вопрос:

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

Примеры:

  • 4 -> 0.4
  • 65 -> 0.65
  • 1584 -> 0.1584

Я подумал, что мог бы сделать что-то вроде этого:

 def mapToDec(x):
  while x > 1:
    x = x / 10
  return x
 

Однако я ищу что-то более сложное, не требующее цикла, что-то, что, возможно, выглядело бы как математическая функция.

Комментарии:

1. Что это за язык? Пожалуйста, добавьте соответствующий тег.

2. @alexandrosangeli В вопросе не упоминается, какова цель, но, возможно, стоит отметить, что такая функция не обязательно будет обратимой, в том смысле, что вы не всегда сможете восстановить исходное целое число из значения с плавающей запятой.

Ответ №1:

Вы показали, что такая функция существует, реализовав ее. Если вы хотите его без цикла, как насчет

 def mapToDec(x):
    return x * 10 ** -(1   math.floor(math.log10(x)))
 

Комментарии:

1. x / 10 ** (1 math.floor(math.log10(x))) кажется, работает с большей точностью

2. Спасибо, это в значительной степени то, что я искал.