Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 474
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Isso não é tudo... https://www.mql5.com/ru/forum/66827
Como saber o valor real de uma variável de tipo duplo? O problema é que, por vezes, milhares de dígitos são deitados fora através da impressão - a variável em si é formada a partir de um fio de texto, mas passa por um procedimento de arredondamento.
Ahem. Para que é que precisa dele?
Para detectar um erro no cálculo :)
Quer comparar vários valores do tipo duplo?
Pode por favor enviar mensagens de e-mail do terminal Metatrader 4 de tal forma que uma captura de ecrã do gráfico actual seja tirada e colocada no meio da mensagem. Exemplo:
Havia um sinal de compra na EurUsd
<скриншот09122015_eurusd.png>
Informação adicional sobre a abertura.
Diz-me como implementar isto? Talvez haja um exemplo ou algo semelhante que possa ser refeito. Obrigado!Não é bem assim... há uma suposição de que os números nem sempre têm um valor inteiro de 4=3,9999999999999999999 e depois de fazer as contas, obtém-se uma inexactidão após o arredondamento.
Mesmo que a inexactidão apareça, usar NormalizeDouble(). Defina a precisão desejada para os seus cálculos. É para isto que serve esta função.
O exemplo ali parece descrever o seu caso:
Deve estar ciente de que o número normalizado quando a saída para o Jornal utilizando Print() pode conter mais casas decimais do que se espera. Por exemplo,
DoubleToString(a,8)=76.67100000
Print(76.671)=76.67100000000001
Mesmo que a inexactidão apareça, usar NormalizeDouble(). Defina a precisão desejada para os seus cálculos. É para isto que serve esta função.
O exemplo ali parece descrever o seu caso:
Sim - está descrito, sim - eu utilizo-o - a questão é como não através da impressão e da cadeia em geral para obter dados para análise :)
Usando o mesmo NormalizeDouble(). Recebe-se um número de tipo duplo. Normalizado. Simplesmente imprimir() produz assim.
Aqui está escrito como fazer a comparação correctamente: https://www.mql5.com/ru/docs/basis/types/double