betovsp Posted December 23, 2021 Report Share Posted December 23, 2021 Boa noite pessoal. Estou tentando converter uma variável de caracter para numérico, mas está retornando 0, onde estou errando? cDados:=LEFT(cDados,6) cDados:=LEFT(cDados,3)+"."+RIGHT(cDados,3) ? cDados // aqui mostra corretamento e o tipo é C nPeso:=val(cDados) // aqui retorna 0 Isso é a leitura de uma balança. Vlw. Quote Link to comment Share on other sites More sharing options...
macs Posted December 23, 2021 Report Share Posted December 23, 2021 Qual o conteúdo de cDados, tudo vai depender deste valor? Testa desta forma: nPeso := Val( Transform( cDados, "@R 999.999" ) ) Quote Link to comment Share on other sites More sharing options...
betovsp Posted December 23, 2021 Author Report Share Posted December 23, 2021 4 minutos atrás, macs disse: Qual o conteúdo de cDados, tudo vai depender deste valor? Testa desta forma: nPeso := Val( Transform( cDados, "@R 999.999" ) ) Bom dia, o conteudo é um campo caracter com o valor que busca da balança. Dessa forma que indicou, ainda retorna 0.000 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted December 23, 2021 Report Share Posted December 23, 2021 ? Val( "31421" ) // 31421 Quote Link to comment Share on other sites More sharing options...
Ariston Santos Posted December 23, 2021 Report Share Posted December 23, 2021 Se você está obtendo o conteúdo da balança, tente fazer uma limpeza antes. Ex: cBuffer := strtran(cDados, chr(02), "") cBuffer := strtran(cBuffer, chr(03), "") cBuffer := strtran(cBuffer, chr(27), "") cvar := cBuffer if at(".", cvar) # 0 .or. at(",", cvar) # 0 if at(",", cvar) # 0 cvar := strtran(cvar, ",",".") endif xQtd := VAL(cVar) else xQtd := VAL(cVar) / 1000 endif ? xQtd Quote Link to comment Share on other sites More sharing options...
betovsp Posted December 23, 2021 Author Report Share Posted December 23, 2021 Pessoal, resolvido. Ele estava vindo um espaço, e por isso não convertia com a função val(). Fiz as tratativas e deu certo. Obrigado a todos. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.