是否有正则表达式来修剪两位小数后的数字?

Posted

技术标签:

【中文标题】是否有正则表达式来修剪两位小数后的数字?【英文标题】:Is there a Regex to trim numbers after two decimal places? 【发布时间】:2021-11-17 06:36:05 【问题描述】:

我正在尝试减少小数位数,出于某种原因,使用“固定小数”258.2 不会将我列中的所有数字更改为两位小数。

在将数字指定为具有 2 位的固定小数后,我几乎有以下内容:

    6.933141 5.13 1.56 2.94 1.54 6.470931

所以改变固定小数的数量对我没有用,所以我一直在尝试使用 RegEx,并想出了(^\d+.\d2)。但是,这仅标识了我想要保留的内容。

有没有办法使用 Regex_Replace 来做到这一点?

提前感谢大家的帮助!

【问题讨论】:

为什么不使用printf 格式%.2f 打印2 位小数? 【参考方案1】:

使用

^(\d+\.\d2)\d+$

替换$1。见regex proof。

解释

--------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  (                        group and capture to $1:
--------------------------------------------------------------------------------
    \d+                      digits (0-9) (1 or more times (matching
                             the most amount possible))
--------------------------------------------------------------------------------
    \.                       '.'
--------------------------------------------------------------------------------
    \d2                    digits (0-9) (2 times)
--------------------------------------------------------------------------------
  )                        end of $1
--------------------------------------------------------------------------------
  \d+                      digits (0-9) (1 or more times (matching
                           the most amount possible))
--------------------------------------------------------------------------------
  $                        before an optional \n, and the end of the
                           string

【讨论】:

以上是关于是否有正则表达式来修剪两位小数后的数字?的主要内容,如果未能解决你的问题,请参考以下文章

求一个正则表达式只能输入数字小数点后两位和

js正则表达式 只能支持小数点到两位小数和纯数字 0.01-99999999(大于0)

抄袭正则表达式来

js正则表达式 判断输入框是不是为正整数或者正整数保留两位小数

关于文本框的正则表达式,只能输入正数,可以有小数点,小数点后面两位。

具有数字长度限制的数字的正则表达式,包括小数[关闭]