【问题标题】:append digits after decimal在小数点后追加数字
【发布时间】:2017-06-03 05:14:56
【问题描述】:

我有以下数字,想使用正则表达式转换为以下数字,有人能指出我正确的方向吗?

Current State   Desired State 
        13.2    13.29999
        1.66    1.66999
        1.002   1.00299
        0.2336  0.23369

谢谢

【问题讨论】:

  • 您如何确定要添加多少9s?您是否尝试过任何正则表达式?我猜(\.\d+?)(\D) 然后在$1$2 之间附加9s。

标签: regex alteryx


【解决方案1】:

不是正则表达式,而是 Alteryx 解决方案:使用具有以下表达式的公式工具:

ToNumber(
IF Contains(ToString(f1),".") THEN
   PadRight(ToString([f1]),Length(ToString([f1],5)),"9") 
ELSE
   ToString([f1]) + ".99999" 
ENDIF
)

这假定字段[f1] 是数字并且适用于整数。如果保证[f1] 总是有一个小数(如你的例子中),那么你不需要If 并且可以简单地运行:

ToNumber(
   PadRight(ToString([f1]),Length(ToString([f1],5)),"9") 
)

解释:如果它是一个整数(没有小数点),那么只需附加小数点和五个 9...但是你想要 9,所以我只是抓住这个的长度,然后 PadRight 原始的 [f1] 与 9 的长度相同。

【讨论】:

    猜你喜欢
    • 2013-10-11
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多