ACC: Redonda ou truncar valores para pretendido número de decimais

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 97524
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Moderado: Requer básica de macro, codificação e interoperabilidade habilidades.

Sumário
A propriedade de formato de um controle pode arredondar um campo número ou moeda para o número de casas decimais que você deseja. No entanto, isso não altera os dados base, que podem conter dígitos adicionais que o controle não é exibida. Se você adicionar os valores nesse controle, a soma é baseada em valores reais e não nos valores exibidos. Isso pode tornar o total pareçam imprecisas.

Este artigo mostra como criar quatro funções definidas pelo usuário para arredondar ou truncar dados para duas casas decimais para que o valor exibido e formatado e os dados numéricos ou de moeda reais sejam os mesmos.

Este artigo presume que você esteja familiarizado com Visual Basic for Applications e com a criação de aplicativos do Microsoft Access usando as ferramentas de programação fornecidas com o Microsoft Access. Para obter mais informações sobre o Visual Basic for Applications, consulte sua versão do manual "Criando aplicativos com o Microsoft Access".

Observação: o Visual Basic for Applications é denominado Access Basic no Microsoft Access versões 1.x e 2.0. Para obter mais informações sobre o Access Basic, consulte o manual "Introdução à programação" no Microsoft Access versão 1.x ou no manual "Building Applications" no Microsoft Access versão 2.0
Mais Informações
As funções são apresentadas em dois estilos. O primeiro estilo é apropriado para a propriedade AfterUpdate de um controle de formulário para garantir que os dados inseridos corresponde os dados que são exibidos. O segundo estilo é para uso em expressões e controles calculados.

Para arredondar ou truncar números para duas casas decimais, crie um novo módulo e adicione as seguintes funções.
   '******************************************************   ' Declarations section of the module   '******************************************************   Option Explicit   Const Factor = 100   '=====================================================   ' RoundAU and TruncAU are designed to be added to the   ' AfterUpdate property on a form control.   '=====================================================   Function RoundAU(X As Control)      X = Int(X * Factor + .5) / Factor   End Function   Function TruncAU(X As Control)      X = Int(X * Factor) / Factor   End Function   '=====================================================   ' RoundCC and TruncCC are designed to be used in   ' expressions and calculated controls on forms and reports.   '=====================================================   Function RoundCC(X)      RoundCC = Int (X * Factor + 0.5) / Factor   End Function   Function TruncCC(X)      TruncCC = Int (X * Factor) / Factor   End Function				

Exemplos do uso de funções redondos e truncar

Os exemplos a seguir usam o exemplo banco de dados Northwind.mdb (ou NWIND.MDB na versão 2.0 ou anterior).

Cuidado: Após as etapas nesses exemplos irão modificar o exemplo banco de dados Northwind.mdb (ou NWIND.MDB na versão 2.0 ou anterior). Convém fazer o backup do arquivo Northwind.mdb (ou NWIND.MDB) e execute essas etapas em uma cópia do banco de dados.

Exemplo 1

Use a função TruncAU() para a propriedade AfterUpdate de um formulário:
  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Crie um novo módulo chamado arredondamento e digite os procedimentos na seção anterior.
  3. Abra o formulário Produtos no modo de design e adicione a função TruncAU() à propriedade AfterUpdate do campo PreçoUnitário (ou campo Preço unitário na versão 2.0 ou anterior):
       Form: Products   --------------   Control Name: Unit Price      AfterUpdate: =TruncAU([UnitPrice])						
    se um usuário inserir acidentalmente $ 23.055 em vez de $ 23,05, o TruncAu() função captura o erro e altera o valor para $ 23,05. Se você usar a função RoundAu() em vez disso, a função altera o valor para $ 23.06. Se você usar nenhuma função, o valor é exibido como r$ 23.06, mas o valor inserido, $ 23.055, é usado em cálculos.

Exemplo 2

Use a função RoundCC() com uma expressão no rodapé de grupo do relatório. Este exemplo pressupõe que você já tenha criado o módulo de arredondamento na etapa 2 do exemplo 1:
  1. Abra o banco de dados de exemplo Northwind.mdb.
  2. Abra o relatório Resumo de vendas por ano no modo de design e use a função RoundCC() na propriedade OrigemDoControle de dois controles no rodapé de grupo do relatório:
    No Microsoft Access 7.0 e 97:
          Report: Summary of Sales By Year      --------------------------------      Control Name: QuarterSales         ControlSource: =Sum(RoundCC([SubTotal]))      Control Name: YearTotal         ControlSource: =Sum(RoundCC([SubTotal]))						
    No Microsoft Access 1.x e 2.0:
          Report: Summary of Sales By Year      --------------------------------      Control Name: Total Sales for Quarter         ControlSource: =Sum(RoundCC([Order Amount]))      Control Name: Total Sales for Year         ControlSource: =Sum(RoundCC([Order Amount]))						
    se você usar RoundCC(), o relatório soma os valores exibidos no relatório, mesmo que os valores reais podem conter dígitos ocultos.
Observação: Para alterar o número de casas decimais que usam as funções, abra o módulo de arredondamento no modo de design e altere o valor da constante global, fator, da seguinte maneira:
      10 = 1 decimal place     100 = 2 decimal places    1000 = 3 decimal places, and so on				

Limitações

Essas funções só devem ser usadas com dados de moeda. Se usado com números Double ou Single, você ainda pode receber erros de arredondamento menores. O motivo para isso é que números Single e Double são de ponto flutuante. Eles não podem armazenar uma representação binária exata de frações decimais. Portanto, sempre haverá algum erro. No entanto, valores de moeda são inteiros em escala e podem armazenar uma representação binária exata de frações até 4 casas decimais.
Int trunc precisão arredondamento

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 97524 - Última Revisão: 12/04/2015 09:25:27 - Revisão: 2.3

Microsoft Access 1.0 Standard Edition, Microsoft Access 1.1 Standard Edition, Microsoft Access 2.0 Standard Edition, Microsoft Access 95 Standard Edition, Microsoft Access 97 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowto kbprogramming kbusage KB97524 KbMtpt
Comentários