Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Avatar do usuário
Por BritoMarques
Posts Avatar
#63070
Olá a todos!
Estou com uma dúvida e gostaria de saber se poderia me esclarecer algo.

01-
Qdo salvo um valor através desta macro:

_____________________________________________________
Sub teste3()
Range("a3") = VBA.Round(0.4, 2)
End Sub
Aparece na barra de fórmula o valor 0,4 (td normal),
_____________________________________________________
Qdo salvo por esta outra macro:
Sub teste()
Dim xVarS As Single
xVarS = 0.4
Range("A1") = VBA.Round(xVarS, 2)
End Sub
Aparece na barra de fórmula o valor 0,400000005960464 ?
_____________________________________________________

A diferença está no fato de uma ter sido através de variável?
Tentei usar o trunc no VBA mas não consegui, coloquei WorkSheetFuncion. e VBA. e em nenhuma delas a opção Trunc estava disponível. Alguém sabe informar o pq do comportamento diferente da função Round?
Por Raygsson
Posts
#63073
@BritoMarques

Provavelmente esta relacionado ao arredondamento. Quando você não declara e tipifica uma variável ela assume o tipo Variant.
Variant pode guardar outros tipos de dados, o VBA decide qual tipo de acordo com o dado inserido na variável.
Se tiver optado por Double por exemplo, ele tem precisão dupla em números de ponto flutuante , isso pode arredondar o valor.
O tipo Single tem precisão simples, se comporta se forma diferente. Abaixo tem um tópico bem interessante sobre isso, está em inglês porém basta traduzir no navegador.
https://stackoverflow.com/questions/185 ... e-rounding

Att,
Raygsson
BritoMarques agradeceu por isso
Avatar do usuário
Por BritoMarques
Posts Avatar
#63083
Obg pela resposta Raygsson...
Um detalhe importate é que usando =ARRED(valor;2) este não gera "sujeira" após a segunda casa e sim apenas zeros como era de se esperar
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord