我想从字符串中删除点。例如
242.701000393 = 242701000393
Run Code Online (Sandbox Code Playgroud)
我尝试过下面的代码,在某些情况下工作正常。
string.gsub("242.701000393", "%.", "")
Run Code Online (Sandbox Code Playgroud)
同样,我已经尝试过上述功能100999212.707000393。但它不起作用。
我是 lua 的新手。我想在每种情况下都从字符串中删除 .(dot) 。
分享你的想法,因为我不知道如何实现它。
按照我的逻辑如下所示
如果可能的话分享它的解决方案。
提前致谢。
代码 :
local destination_number =100999212.707000393
destination_number = string.gsub(destination_number, "%.", "")
print(destination_number)
Run Code Online (Sandbox Code Playgroud)
输出 :100999212707
预期输出:100999212707000393
问题是数字 - 浮点舍入的准确性,而不是 gsub 的功能。
local destination_number =100999212.707000393
print(destination_number, type(destination_number) )
destination_number = string.gsub(destination_number, "%.", "")
print(destination_number,type(destination_number))
Run Code Online (Sandbox Code Playgroud)
输出
100999212.707 number
100999212707 string
Run Code Online (Sandbox Code Playgroud)
相比 ...
local destination_number = "100999212.707000393"
print(destination_number, type(destination_number) )
destination_number = string.gsub(destination_number, "%.", "")
print(destination_number,type(destination_number))
Run Code Online (Sandbox Code Playgroud)
输出
100999212.707000393 string
100999212707000393 string
Run Code Online (Sandbox Code Playgroud)
浮点双精度数的精度约为 15 位,这意味着393在生成数字时会丢失 。当转换为字符串时,它已经消失了。
15 位数字非常准确,通常足以满足大多数用途,但如果这对您来说还不够,您将需要考虑替代数据表示形式。
| 归档时间: |
|
| 查看次数: |
2841 次 |
| 最近记录: |