Excel armazenando números incorretamente

Excel armazenando números incorretamente

Se eu digitar um valor em uma célula, ele o armazenará conforme o esperado, mas se eu definir o valor por meio do código VBA, ele o armazenará incorretamente. Para ser mais específico, calculei a altura de algo e o valor resultante é 1,15. O número é exibido corretamente, mas quando clico na célula, o número que está realmente armazenado é 1,14999997615814. Existe outra célula que usa esse número ou outro número baseado em uma condição. Essa célula sempre exibe o número real armazenado (1,14999997615814), que está incorreto. Isto se aplica a um documento técnico que está sendo revisado por engenheiros do governo, portanto, mesmo um pequeno desvio fará com que o documento seja rejeitado. Tentei armazenar o número como texto (sem diferença), arredondá-lo antes de armazenar (sem diferença), calculá-lo como precisão simples ou dupla antes de armazenar, novamente sem diferença no que o Excel faz. Isso não acontece com todos os valores, mas quando o resultado calculado foi 1,15 apresenta esse comportamento. A única coisa que faz com que o número seja armazenado corretamente é digitá-lo manualmente e isso anula todo o propósito de calcular o valor. Alguém tem alguma ideia do que está acontecendo e como posso forçar, coagir ou subornar o Excel para que se comporte adequadamente?

TIA.

Responder1

Ainda não sei o que realmente causou o problema. Não vou te aborrecer com o código usado para chegar ao resultado - em resumo é apenas localizar os números para somar e somar. Os valores são (0,0747*2)+(0,25*2)+0,05006 que é igual a 1,15. A única solução que funcionou foi atribuir os resultados à célula como texto e depois converter para um número como este:

    ws.Range("L24").Value = "'" & JobSettings.BrgHeight
    ws.Range("L24").Select
    Selection.NumberFormat = "General"

informação relacionada