
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
C'est parce qu'il est de 0,6, donc 0,5 ne peut être obtenu qu'en trichant.
Si 'v1' est inséré dans un nombre quelconque, cela montre qu'il est arrondi correctement à 'i = 2'.
Si l'on insère "v1" dans un nombre quelconque, on constate que jusqu'à "i = 2", tout est arrondi correctement.
Lorsqu'un seul chiffre est normalisé, c'est simple : 0, 1, 2, 3, 4 -> 0, et 5, 6, 7, 8, 9 -> 1.
Lors de la normalisation, les nombres à deux chiffres sont pris en compte : 0 - 49 -> 0, et 50 - 99 -> 1. Après tout, si le nombre 1,49 doit être arrondi aux nombres entiers, devons-nous vraiment obtenir 2, qui représente 51 centièmes par rapport aux 49 centièmes de distance à 1 disponibles ?
Il en va de même pour les chiffres à trois, quatre, etc.
Mais 1,45 est arrondi à 2, mais seulement s'il a été préalablement normalisé à un degré de précision supérieur.
v1 = 0 = 1.0000000, v2 = 0 = 2.0000000
v1 = 1 = 1,5000000, v2 = 1 = 1,5000000
v1 = 2 = 1,4500000, v2 = 2 = 1,4600000
v1 = 3 = 1,4550000, v2 = 3 = 1,4550000
il s'avère que si dans les calculs du nombre a été normalisé à une précision plus élevée et dans les calculs ultérieurs à normaliser le nombre à une précision inférieure sera le résultat d'une différente de la simplement normalisé ce nombre à une précision inférieure.
il s'avère que si, dans le calcul, le nombre a été normalisé à une précision supérieure et que, dans les calculs suivants, le nombre est normalisé à une précision inférieure, le résultat est différent de la simple normalisation du nombre à une précision inférieure.
Excusez-moi, mais comment obtenir les valeurs que vous voulez ?
Si j'utilise les fonctions recommandées, alors :
- Dans un cas, j'obtiens une valeur correctement arrondie
0.06-0.02 =NormalizeDouble(0.03999999999999999,2) = 0.04
La division est approximative et la normalisation est nécessaire.
- Dans le second cas, j'obtiens également un arrondi, mais il n'est pas nécessaire dans ce cas
0.06-0.024 = NormalizeDouble(0.036,2) = 0.04
La normalisation (arrondi) n'est pas nécessaire ici.
Mais comment normaliser au lieu d'arrondir ?
Excusez-moi, mais comment obtenir les valeurs que vous voulez ?
Pour cela, il convient de formuler ce que sont les "bonnes valeurs". ))
Si j'utilise les fonctions recommandées, alors :
- Dans un cas, j'obtiens une valeur correctement arrondie.
0.06-0.02 = NormalizeDouble(0.0399999999999999999,2) = 0.04
La division est approximative et vous ne pouvez pas vous passer de la normalisation.
- Dans le second cas, j'obtiens également l'arrondi, mais il n'est pas nécessaire dans ce cas.
0.06-0.024 = NormalizeDouble(0.036,2) = 0.04
La normalisation (arrondi) n'est pas nécessaire ici.
Mais comment normaliser correctement, plutôt que d'arrondir les valeurs ?
L'exemple ci-dessus montre que vous utilisez un algorithme intuitif qui détermine la "justesse" de la normalisation. Dans le premier cas, il s'agit d'une fraction infinie, alors que dans le second cas, il s'agit d'une fraction finie. Adaptez votre algorithme pour convertir le nombre réel à la forme souhaitée.
Bien que le moyen le plus simple soit de décider à l'avance de la précision requise des calculs.
Pour ce faire, il convient simplement de formuler ce que sont les "bonnes valeurs". ))
Dans l'exemple ci-dessus, vous pouvez voir que vous utilisez un algorithme intuitif qui vous permet de déterminer la "nécessité" de la normalisation. Dans le premier cas, il s'agit d'une fraction infinie, alors que dans le second cas, il s'agit d'une fraction finie. Adaptez votre algorithme pour convertir le nombre réel à la forme souhaitée.
Le plus simple est de décider à l'avance de la précision dont vous avez besoin.
Si vous voulez 0,036 (3 décimales), normalisez à 3, pas à 2.
Je me suis trompé, jusqu'à 3 chiffres devraient être normalisés. Est-il possible de le faire ?
Je me suis trompé, jusqu'à 3 chiffres devraient être normalisés. Est-ce que ça va marcher comme ça ?
Voici votre code :
Au lieu de 2, mettez 3 et ça fera 0,036.