Ir para conteúdo
  • Cadastre-se

dev botao

ACBrUtil - FloatToString. Valores ficando sem casa decimais - Sugestão de alteração


  • Este tópico foi criado há 3088 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Fala pessoal, Boa tarde! 

Estou migrando para trunck2 (meio atrasado né.. rsrs) e encontrei um problema na função FloatToString que demorei para localizar.. rsrs

Quando chamava a função passando 25.30 ela retorna a string 2530

A Função atualmente está assim:

  DS := {$IFDEF HAS_FORMATSETTINGS}FormatSettings.{$ENDIF}DecimalSeparator;
  TS := {$IFDEF HAS_FORMATSETTINGS}FormatSettings.{$ENDIF}ThousandSeparator;

  // Removendo Separador de milhar //
  Result := StringReplace(Result, TS, '', [rfReplaceAll]);

  // Verificando se precisa mudar Separador decimal //
  if DS <> SeparadorDecimal then
    Result := StringReplace(Result, DS, SeparadorDecimal, [rfReplaceAll]);

Ela retira o separador de milhar e depois verifica se o separador decimal é diferente do de milhar e faz a substituição.. 

Só que no meu caso, o separador decimal e de milhar são iguais.. os dois são  . ( ponto )

Então quando ele retira o separador milhar, ele retira o separador decimal junto.. 

Eu fiz a seguinte alteração..

  DS := {$IFDEF HAS_FORMATSETTINGS}FormatSettings.{$ENDIF}DecimalSeparator;
  TS := {$IFDEF HAS_FORMATSETTINGS}FormatSettings.{$ENDIF}ThousandSeparator;

  // Removendo Separador de milhar //
  if ( DS <> TS ) then
     Result := StringReplace(Result, TS, '', [rfReplaceAll]);

  // Verificando se precisa mudar Separador decimal //
  if DS <> SeparadorDecimal then
    Result := StringReplace(Result, DS, SeparadorDecimal, [rfReplaceAll]);

if ( DS <> TS ) then 

só retiro o separador de milhar se for diferente do decimal..

dessa forma corrigiu vários problemas que estavam dando para emitir NFe.

 

Não sei muito bem como funciona a sugestão de alterações, então me decuplem se estou postando no lugar errado.. rs

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Acho que você terá vários outros problemas, usando o separador de milhar igual ao separador de decimal...

Por favor anexe os fontes modificados para analise...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

Oi Daniel,

 Aqui na empresa, já trabalhamos a muito tempo dessa forma, só tivemos problemas quando atualizamos o ACBR,

em vários units é usada essa função e o ( . ) estava sumindo, como para localizar o arquivo de schemas, que tbm tem ponto e não estava localizando o arquivo por cauda dessa função.

Estou anexando a unit, 

Obrigado pela atenção!

ACBrUtil.pas

Editado por Hallysson
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3088 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.