发表帖子

TCL 如何只输出小数点后面的有效数字?

TCL 如何只输出小数点后面的有效数字? @ 主贴

日期:2009-06-21 14:30:58 作者:风行水上 提问

例如,

1.230 输出为 1.23

8.000 输出为 8.0

@ 主贴

日期: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