2017-01-18 5 views
0

У меня есть следующие цифры и вы хотите использовать регулярное выражение для преобразования в следующее, может ли кто-нибудь указать мне в правильном направлении.добавить цифры после десятичного числа

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

Благодаря

+1

Как вы определяете, сколько '9' s добавить? Вы уже пробовали какие-либо регулярные выражения? Я бы предположил '(\. \ D +?) (\ D)', а затем добавит '9' между '$ 1' и' $ 2'. – chris85

ответ

0

не регулярное выражение, но решение 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-х ... если оно содержит десятичное число, тогда Alteryx предоставляет ToString([f1],5), который заполняет нулями до пяти десятичных знаков. Но вы хотите использовать nines, вместо этого я просто хватаю длину этого, а PadRight - оригинал [f1] с 9-ю до такой же длины.