降低数字的精确度 - 正则表达式vim

Aim*_*man 9 regex precision vim decimal

我的正则表达式很生疏.如何使用vim来改变十进制数的精度.

例如:

将30.2223221 8188.2121213212更改为30.22 8188.21

Pon*_*tus 12

使用vim内部搜索/替换很可能,但我会使用"perldo":

:perldo s/(\d+\.\d+)/sprintf "%.2f", $1/eg
Run Code Online (Sandbox Code Playgroud)


Rai*_*ndi 12

仅使用VimL:

:%s/\d\+\.\d\+/\=printf('%.2f',str2float(submatch(0)))/g


gee*_*aur 5

如果您只想截断最后一位数字而不是四舍五入,

:%s/(\d+\.\d\d)\d+/\1/g
Run Code Online (Sandbox Code Playgroud)