我想从字符串中删除点。 例如
242.701000393 = 242701000393
我尝试过以下代码,在某些情况下工作正常。
string.gsub("242.701000393", "%.", "")
同样地,我已经为100999212.707000393
尝试了以上功能。但它没有为它工作。
是lua的新手。我想在每种情况下从字符串中删除。(点)。
分享你的想法,因为我不知道如何实现它。
根据我的逻辑如下所示
尽可能分享解决方案。
提前致谢。
代码:
local destination_number =100999212.707000393
destination_number = string.gsub(destination_number, "%.", "")
print(destination_number)
输出:100999212707
预期输出:100999212707000393
答案 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位数字非常准确,通常足以满足大多数用途,但如果它不够,您需要考虑替代数据表示。