Как удалить точку из строки в Луа - PullRequest
0 голосов
/ 04 июня 2018

Я хотел бы удалить точку из строки.Например,

242.701000393 = 242701000393

Я попробовал приведенный ниже код, который в некоторых случаях работает нормально.

string.gsub("242.701000393", "%.", "")

Таким же образом, я попробовал вышеуказанную функцию для 100999212.707000393. Но она не работаетза это.

Я новичок в lua.Я хотел бы просто удалить. (точку) из строки в каждом случае.

Поделитесь своими мыслями, поскольку я не знаю, как этого добиться.

Согласно моей логике выглядит следующим образом

  1. разбить строку на точку и преобразовать в массив
  2. объединить все элементы массива

Поделитесь этим решением, если возможно.

Заранее спасибо.

КОД:

local destination_number =100999212.707000393
destination_number = string.gsub(destination_number, "%.", "")
print(destination_number)

Выход: 100999212707

Ожидаемый результат: 100999212707000393

1 Ответ

0 голосов
/ 04 июня 2018

Проблема заключается в точности округления числа с плавающей запятой, а не функции gsub.

local destination_number =100999212.707000393
print(destination_number, type(destination_number) )
destination_number = string.gsub(destination_number, "%.", "")
print(destination_number,type(destination_number))

output

100999212.707   number
100999212707    string

по сравнению с ...

local destination_number = "100999212.707000393"
print(destination_number, type(destination_number) )
destination_number = string.gsub(destination_number, "%.", "")
print(destination_number,type(destination_number))

output

100999212.707000393     string
100999212707000393      string

Двойной тип с плавающей запятой имеет около 15 цифр точности, что означает, что 393 теряется при генерации числа.При преобразовании в строку оно уже ушло.

15 цифр достаточно точны и, как правило, достаточно хороши для большинства целей, но если этого недостаточно, вам нужно будет рассмотреть альтернативные представления данных.

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