Bom dia pessoal, estou tratando uma campo string e preciso criar uma formula para capturar um número dentro desse campo.
Esses números são para construir um campo de percentual, notem que tem campos com 4, 3, 2 ou 1 número dentro desse intervalo, isso se refere as casas decimais, por exemplo:
linha 4: "0.782" no novo campo é para retornar 7.82%
linha 5: "0.2894" é para retornar 28.94%
linha 7: "0.78" é pra retornar 7.8%
linha 8: "0.0" é pra retornar 0%
Seria os valores após o "0." e anterior a letra, caso possua. Atualmente estou fazendo com substring, mas o meu receio é se o tamanho ou alguma nomenclatura na string mude. Teriam alguma solução mais inteligente para gerar esse novo campo?
Solucionado! Ir para Solução.
Segue os exemplos em texto:
---inflation:-!ruby/object:BigDecimal27:0.681e1-!ruby/object:BigDecimal27:0.668e1
---inflation:-!ruby/object:BigDecimal27:0.682e1-!ruby/object:BigDecimal27:0.681e1
---inflation:-!ruby/object:BigDecimal27:0.927e1-!ruby/object:BigDecimal27:0.1302e2
---inflation:-!ruby/object:BigDecimal27:0.781e1-!ruby/object:BigDecimal27:0.782e1
---inflation:-!ruby/object:BigDecimal27:0.2571e2-!ruby/object:BigDecimal27:0.2894e2
---inflation:-!ruby/object:BigDecimal27:0.652E1-!ruby/object:BigDecimal27:0.639E1
---inflation:-!ruby/object:BigDecimal18:0.78E0-!ruby/object:BigDecimal18:-0.78E0
---inflation:-!ruby/object:BigDecimal18:-0.78E0-!ruby/object:BigDecimal18:0.0
Oi Raul,
Voce pode so usar um Regex e Tokenize com isso daqui e ele vai pegar para voce os valores decimais. Ai depois é só converter para o formato que voce quer.
BigDecimal\d+:(-*\d*.-*\d+)
Opa @RaulVale
Além de fazer o que @pedrodrfaria fala, eu adicionaria o valor completa. Desse jeito, com mais um select, você pode mudar o tipo de dado para double e dar certo.
Gabriel