Array
(
)

Erro em arredondamento - Só no Windows 2000 Pro

Scandolara
   - 16 ago 2004

Pessoal,

nao sei , mas meu sistema esta arredondando , ou seja, nao esta batendo qdo faz multiplicacao.

Exemplo:
1.96 * 2
o resultado tem que ser 3.92, mas o sistema esta calculando 3.93 no meu cliente !!!! o que pode ser ?
fiz um teste em meu computador (win98) e deu certo ..., as maquinas de meu cliente sao comWin2000Pro ... sera q tem alguma coisa haver ?

Na config do BDE tem alguma coisa q eu possa checar ?

Uso D.4 c/ Paradox.

Obr

Título editado pelo Moderador (AZ)


Gabriel Ferrarini
   - 16 ago 2004

Não sei a solição pr seu problema, mas passo por algo parecido e meu cliente também usa o Win2000.

Tenho um componente TEdit que trabalha que tem uma propriedade chamada Value. Esse valor é dividido em várias partes através de porcentagens. Depois de arredondadas e somadas as partes em uma variável, seu valor bate com o Value do componente. Conferido pelo Debug -> Inspect. Mas meu executável acusa diferença no valor. No Win98 funciona perfeitamente.

A única diferença que notei entre a variável e a propriedade Value é o tipo. A variável é real e a propriedade é Extended.


Aroldo Zanela
   - 19 ago 2004

Colega,

Estou chegando atrasado à mensagem, mas se possível, coloque um fragmento do código para gente entender melhor. Fiz alguns testes aqui com os valores informados e utilizando todos os tipos reais e não apresentou problemas. Testei numa máquina com Windows2000Pro!


Ipc$
   - 19 ago 2004

Já passei por isso também, só que meu problema era que no banco o valor estava com várias decimais ao invés de 2.
Solucionei dessa forma:
Valor := Trunc(Valor * 100) / 100;
Com isto, no banco ficou com 2 decimais.