J'ai esquissé une fonction qui fait exactement ce que je veux qu'elle fasse : elle tronque précisément une chaîne de caractères à la précision spécifiée , contrairement à DoubleToStr:
string Normalize (string Normalize_Parse, int Normalize_Number, string Normalize_Separator = ".")
{
string Normalize_Before,
Normalize_After;
for (int i = 0; i <= StringLen (Normalize_Parse) - 1; i ++)
{
if (StringSubstr (Normalize_Parse, i, StringLen (Normalize_Separator)) == Normalize_Separator)
{
for (int ii = i + StringLen (Normalize_Separator); ii < i + StringLen (Normalize_Separator) + Normalize_Number; ii ++)
{
Normalize_After += StringSubstr (Normalize_Parse, ii, 1);
}
break;
}
Normalize_Before += StringSubstr (Normalize_Parse, i, 1);
}
return (Normalize_Before + (Normalize_After > 0 ? Normalize_Separator + Normalize_After : ""));
}
J'ai esquissé une fonction qui fait exactement ce que je veux qu'elle fasse : elle tronque précisément une chaîne de caractères à la précision spécifiée , contrairement à DoubleToStr:
Résultat pour "0.09864724" :
Résultat pour"0,-843158":
Opérations avec double et similaire :
J'ai fait des recherches et une telle fonction existe déjà dans MQL4 (5 ?). S'il n'est pas là, pourquoi ne pas l'avoir ajouté il y a longtemps ? :)
J'ai esquissé une fonction qui fait exactement ce que je veux qu'elle fasse : elle tronque précisément une chaîne de caractères à la précision spécifiée , contrairement à DoubleToStr:
Résultat pour "0.09864724" :
Résultat pour"0,-843158":
Opérations avec double et similaire :
J'ai fait des recherches et une telle fonction existe déjà dans MQL4 (5 ?). S'il n'est pas là, pourquoi ne pas l'avoir ajouté il y a longtemps ? :)
Vous opérez avec des exemples étranges - c'est pourquoi il est impossible de conclure que votre fonction fonctionne correctement.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
mais cette valeur
0.099999999
retournera 0,1
)
alors ce qui a été cité plus haut serait plus approprié à la tâche du CT :
Les retours :
J'ai esquissé une fonction qui fait exactement ce que je veux qu'elle fasse : elle tronque précisément une chaîne de caractères à la précision spécifiée , contrairement à DoubleToStr:
Résultat pour "0.09864724" :
Résultat pour"0,-843158":
Opérations avec double et similaire :
J'ai fait des recherches et une telle fonction existe déjà dans MQL4 (5 ?). S'il n'est pas là, pourquoi ne pas l'avoir ajouté il y a longtemps ? :)
J'ai esquissé une fonction qui fait exactement ce que je veux qu'elle fasse : elle tronque précisément une chaîne de caractères à la précision spécifiée , contrairement à DoubleToStr:
Résultat pour "0.09864724" :
Résultat pour"0,-843158":
Opérations avec double et similaire :
J'ai fait des recherches et une telle fonction existe déjà dans MQL4 (5 ?). S'il n'est pas là, pourquoi ne pas l'avoir ajouté il y a longtemps ? :)
J'ai esquissé une fonction qui fait exactement ce que je veux qu'elle fasse : elle tronque précisément une chaîne de caractères à la précision spécifiée , contrairement à DoubleToStr:
Résultat pour "0.09864724" :
Résultat pour"0,-843158":
Opérations avec double et similaire :
J'ai fait des recherches et une telle fonction existe déjà dans MQL4 (5 ?). S'il n'est pas là, pourquoi ne pas l'avoir ajouté il y a longtemps ? :)
Prenez cet exemple :
comment laisser =0,019999999999999999999999 -- laisser =0,01
Vous opérez avec des exemples hors de propos - vous ne pouvez donc pas conclure que votre fonction fonctionne correctement.
Prenez cet exemple :
comment laisser =0,019999999999999999999999 -- laisser =0,01
Je ne comprends toujours pas ce que vous voulez.
Si vous voulez voir 0,098 sur le graphique au lieu de 0,098, alors faites-le !
int a=0.098 * 100 ;
double d=a/100.0 ;
Commentaire(StringFormat("%G", d ) ;
a vérifié la dernière fonction, laisse 0.01
J'ai vérifié votre fonction... elle laisse 0,02.
En effet, 0,02.
Ma fonction est peut-être plus encombrante, mais elle coupe exactement 0,01.
a vérifié la dernière fonction, laisse 0.01