发表帖子

@ 主贴

日期:2009-06-21 15:16:15 作者:风行水上 解答

关键是考虑到小数点后第一位是0的情况和正则表达式中的非贪婪匹配。

解决办法如下:

set num 1.2900
regsub {(\.\d+?)0*$} $num {\1}
## 输出 1.29

set num 1.00                                
regsub {(\.\d+?)0*$} $num {\1}
## 输出 1.0

注意上面的非贪婪匹配 "\d+?"。如果是采用贪婪匹配,则如下

set num 1.2900
regsub {(\.\d+)0*$} $num {\1}
## 输出 1