如何从lua中的字符串中删除点

时间:2018-06-04 05:48:52

标签: lua

我想从字符串中删除点。 例如

242.701000393 = 242701000393

我尝试过以下代码,在某些情况下工作正常。

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

同样地,我已经为100999212.707000393尝试了以上功能。但它没有为它工作。

是lua的新手。我想在每种情况下从字符串中删除。(点)。

分享你的想法,因为我不知道如何实现它。

根据我的逻辑如下所示

  1. 按点拆分字符串并转换为数组
  2. 连接所有数组元素
  3. 尽可能分享解决方案。

    提前致谢。

    代码:

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

    输出:100999212707

    预期输出:100999212707000393

1 个答案:

答案 0 :(得分:4)

问题是数字的准确性 - 浮点舍入,而不是gsub的功能。

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

输出

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))

输出

100999212.707000393     string
100999212707000393      string

浮点双精度约为15位精度,这意味着393在生成数字时丢失。当转换为字符串时,它已经消失了。

15位数字非常准确,通常足以满足大多数用途,但如果它不够,您需要考虑替代数据表示。