Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 107

 
Olá! Como posso aprender MQL de forma eficiente? Não estou procurando maneiras fáceis, só quero entender! Estou estudando o tutorial de Kovalev, assistindo vídeos, tentando repetir os códigos que estão prescritos nele. Mas há tantos erros mesmo quando repito o código do tutorial..... . Entendo que fui atualizado. Foi-me dito que este site pode me ajudar, por isso estou aqui! O que eu devo fazer?
 
Talvez eu esteja com pressa!
 
Alexey Kozitsyn:
Dividir o fio pelo "." delimitador.

Não é uma má idéia...

Alexey Viktorov:
Não há necessidade de desmontar nada. Mude-o para string apenas para ver o número certo. Você não precisa fazer nada para os cálculos.

Se você quiser causar problemas, converta a string de volta para um número StringToDouble() e multiplique por _Ponto normalizado para o número certo, provavelmente _Dígitos

A questão é que preciso decompor o fio em 3 números, e não posso convertê-lo em um número - acaba sendo um número muito grande para o idioma.

Aqui está um exemplo de tal número

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

Imprime o número 11111111111111111104

 
FOTOGRAF14:
Talvez eu esteja com pressa!
Bem, não tenha pressa! A pressa só é necessária quando se apanha pulgas ((c) humor de exército).
 
-Aleks-:

O problema é que você precisa decompor a cadeia em 3 números, mas não é possível convertê-la em um número - afinal, é um número muito grande para o idioma.

Aqui está um exemplo de tal número

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

Imprime o número 11111111111111111104

Contos de fadas...
 
Vitalie Postolache:
Contos...

Experimente você mesmo.

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);

double Test=CalcZ;
Print ("Test=",Test);

 
-Aleks-:

Experimente você mesmo.

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);

double Test=CalcZ;
Print ("Test=",Test);

Quero dizer "um número muito grande", mas o código também está incorreto, portanto, se você quiser converter de formato para formato, você deve fazê-lo desta forma:

long CalcY=(long)StringToInteger("111111111111111111");
Print ("CalcY=",IntegerToString(CalcY));

O que você está reclamando não é um grande número, mas uma falha na saída do texto.

 
Vitalie Postolache:
Quero dizer "um número muito grande".
Um número muito grande para calcular com precisão - caso contrário, como você explica o erro no final do número?
 
-Aleks-:
Um número muito grande para calcular com precisão - caso contrário, como você explica o erro no final do número?
acima adicionado.
 
Vitalie Postolache:
acima adicionado.

Portanto, eu tenho esta probrazation - você pode colocar uma linha em longo prazo, mas eu preciso do dobro para cálculos por vírgula.