annuncio

Comprimi
Ancora nessun annuncio.

divisione tra variabili dà errore (divide per zero)

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • frasuo
    ha risposto
    Originariamente inviato da fran Visualizza il messaggio
    Buongiorno trader, vi è mai capitato che dividendo due variabili con virgola, mql4 dia errore (divide per zero)? Ed è ancora più stupefacente che se cambio il divisore con il dividendo la cosa funziona. Ho cercato su internet e in effetti il problema è stato segnalato e per alcuni anche risolto, ma non per me. Mi spiego meglio: tramite chiamata a funzione (double) ottengo una variabile di ritorno che è double e la posso evidenziare ( alert etc.), è giusta. La seconda variabile, sempre double la ottengo da una candela, misurandone il volume (apertura meno chiusura) e quindi è double anche quella. Se sommo, addiziono e sottraggo queste due variabili, funziona. Se divido la seconda per la prima, ottengo zero, cioè errore. Se divido la prima per la seconda va bene. E' un rompicapo.
    Chiedo se qualcuno si è imbattuto nello stesso problema. Grazie
    deduco tu abbia risolto, ora.

    Lascia un commento:


  • umbertosm
    ha risposto
    meglio così !

    Lascia un commento:


  • fran
    ha risposto
    Vi ringrazio delle soluzioni e del vostro tempo. Un consiglio, agli amici che ci leggono. Quando l'incomprensibile si materializza davanti ai vostri occhi e perdete le vostre ore in situazioni che sono contro ogni ragione... provate a spegnere il computer e a riavviarlo. Il miracolo è servito. Io ogni tanto lo dimentico. Scusate.

    Lascia un commento:


  • umbertosm
    ha risposto
    Giusto! come scrive maurice.

    Prova a fare la divisione con la funzione
    codice:
    double NormalizeDouble(double value, int digits)
    codice:
    NormalizeDouble(dividendo,5) / NormalizeDouble(divisore,5)
    se divisore è !=0 con NormalizeDouble(divisore,5) non dovresti avere errori di zero divide

    Lascia un commento:


  • maurice
    ha risposto
    Filtralo a prescindere.. se è un errore random legato alla precisione del double..
    ..
    if(divisore > 0) quoziente=dividendo/divisore;
    ..

    Lascia un commento:


  • umbertosm
    ha risposto
    puoi far vedere le righe il codice e far vedere quali sono i valori delle variabili che dividendo danno errore ?
    in 10 anni mai riscontrato errori di divisione tra double con divisione per zero che il divisore non fosse effettivamente zero

    Originariamente inviato da fran Visualizza il messaggio
    Ho cercato su internet e in effetti il problema è stato segnalato e per alcuni anche risolto, ma non per me.
    puoi postare i link così da capire meglio?

    Lascia un commento:


  • fran
    ha risposto
    Ma è proprio quello che ho fatto! l'ho anche scritto sopra... "
    e la posso evidenziare ( alert etc.), è giusta". Così come è corretta la double derivante dalla differenza di un Open e Close di una barra. Del resto è incomprensibile anche il fatto che la divisione funzioni in un senso (barra diviso storico) e non funzioni con la divisione storico/barra.

    Lascia un commento:


  • umbertosm
    ha risposto
    gli errori di divisione per zero che riscontro e sono correttamente sempre dovuti al fatto che per qualche ragione la variabile divisore è in quel momento = 0.

    per capire come mai ottieni l'errore, dovresti visualizzare con Print o Comment() il valore delle due variabili che dividi, un attimo prima che poi le dividi.

    Lascia un commento:


  • fran
    ha iniziato la discussione divisione tra variabili dà errore (divide per zero)

    divisione tra variabili dà errore (divide per zero)

    Buongiorno trader, vi è mai capitato che dividendo due variabili con virgola, mql4 dia errore (divide per zero)? Ed è ancora più stupefacente che se cambio il divisore con il dividendo la cosa funziona. Ho cercato su internet e in effetti il problema è stato segnalato e per alcuni anche risolto, ma non per me. Mi spiego meglio: tramite chiamata a funzione (double) ottengo una variabile di ritorno che è double e la posso evidenziare ( alert etc.), è giusta. La seconda variabile, sempre double la ottengo da una candela, misurandone il volume (apertura meno chiusura) e quindi è double anche quella. Se sommo, addiziono e sottraggo queste due variabili, funziona. Se divido la seconda per la prima, ottengo zero, cioè errore. Se divido la prima per la seconda va bene. E' un rompicapo.
    Chiedo se qualcuno si è imbattuto nello stesso problema. Grazie
Sto operando...
X