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
E deixemos sem resposta a pergunta sobre os defeitos da Print(), vamos? :)
Tanto faz.
OK. Então, vou tomar a coragem. Assim, a descrição da função Print() diz que "os dados do tipo duplo são impressos com a precisão de 16 dígitos decimais após o ponto". De facto, verifica-se que a função Print() produz dados de certa forma arredondados:
void OnStart() { double a,b; a=7.0/200.0; b=7.0/a; Print("Print(b)=",b); Print("Print(DoubleToString(b,16))=",DoubleToString(b,16)); }
MP 0 victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))=199.9999999999999716
OK. Então, vou tomar a coragem. Assim, a descrição da função Print() diz que "os dados do tipo duplo são impressos com a precisão de 16 dígitos decimais após o ponto". Na verdade, verificou-se que a função Print() produz dados ligeiramente arredondados:
MP 0 victorg2 (EURUSD,M1) 11:04:42 Impressão(DoubleToString(b,16))=199.99999999999999999716
123.4567890123456(7>5, portanto arredondado para cima)
Tudo parece encaixar na descrição. Qual é o problema? Os zeros não são impressos?
O erro é que a função Print() não produz"Dados do tipo duplo com uma precisão de 16 dígitos decimais após o ponto".
cheque
Print("Print(b)="+ b);
cheque
Não se deu ao trabalho de verificar.
Antes de mais, o compilador gera "conversão implícita de 'número' para 'string' victorg2.mq5 12 22".
Segundo,
IS 0 victorg2 (EURUSD,M1) 17:46:45 Print(b)=200
PJ 0 victorg2 (EURUSD,M1) 17:46:45 Print(DoubleToString(b,16))=199.9999999999999716
Utilizar a função PrintFormat apropriada para o controlo total do formato:
Os padrões de impressão são o modo normal de arredondamento de dois a quatro dígitos. Iremos corrigir a documentação.Por favor, dê indicações (pegas) às estruturas (de preferência também às arrays, incluindo as estáticas).
Envolver-se nas aulas é muitas vezes uma má solução:
2012.04.07 20:49:38 SizeOf_Test (USDJPY,M30) sizeof(SEmpty) = 0
Por favor, dê indicações (pegas) às estruturas (de preferência também às arrays, incluindo as estáticas).
Em que sentido e porquê?
1. em que sentido e
2. porquê?
1.
CEmpty *C[]; // Это работает. SEmpty *S[]; // Error: 'SEmpty' - class type expected SizeOf_Test.mq5 19 1
Criar matrizes de ponteiros para estruturas (matrizes). com posterior inicialização para(i){ S[i] = GetPointer(StaticStruct[i]); }
2. manter conjuntos sólidos (embalados) de dados significativos.
Importante quando se trata de saída de dados para buffers OpenCL em bruto (ou envio para DLL, escrita para ficheiros, etc.)
Ao mesmo tempo, é possível reordenar os acessos aos dados (por exemplo, ao ordenar os apontadores) sem reescrever os dados.