salut !
j'aimerais récupérer la partie entière d'un double :
comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int x; double y=-3.3325988; //j'aimerais mettre la partie entière de y dans x c'est a dire x=-3
salut !
j'aimerais récupérer la partie entière d'un double :
comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int x; double y=-3.3325988; //j'aimerais mettre la partie entière de y dans x c'est a dire x=-3
Code : Sélectionner tout - Visualiser dans une fenêtre à part x = (int)Math.Truncate(y);
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
salut !
je l'ai essayé mais pour des valeurs négatives, elle retourne 0
et pour y=8 elle retourne 7 ????? c'est bizarre non !
Problème de casting je pense, essaye :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 double d=Math.Truncate(y); int I=(int)d;
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
En fait on peut carrément faire ça :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 double y = -3.3325988; int x = (int)y;
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
Je pense que tu a raison mais tu est certain qu'il n'y a pas parfois des problèmes d'arrondi
Style 3.99999 = 4 ?
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
Bah en même temps 3.9999... c'est bien égal à 4
Sinon les erreurs d'arrondi calamiteux j'en ai surtout vu avec les float, pas les double, mais vu qu'il y a toujours des histoires de conversions à par utiliser lavaleur.ToString et splitter sur le séparateur je ne sais pas s'il y a une méthode arondi proof ...
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
Ah ?? Si c'est une valeur entre -1 et 0, c'est logique, mais sinon ça renvoie bien la partie entière... j'ai fait le test, Math.Truncate(-2.5) renvoie bien -2
Ca pourrait s'expliquer par un problème de précision : un double ne permet pas toujours d'encoder la valeur exacte d'un nombre, donc 8 pourrait être encodé en un truc du genre 7.999996879...
Cela dit j'ai fait le test et chez moi ça renvoie bien 8
Euh... c'est pareil
Ben c'est nouveau ça
Si tu fais des calculs de trajectoire pour une fusée (par exemple), tu ne peux pas te permettre de considérer que c'est égal
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Euh... c'est pareil
A priori oui et il semble bien que oui dans ce cas ci
Mais j'ai déja souvent eu des problemes de casting de ce genre dans des expressions un peu complexe que j'ai été obligé de contourner par l'usage d'une variable temporaire
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
Tu as déjà entendu parler des séries entières ? Tu peux écrire 1 sous la forme d'une série entière (somme de 0 à l'infini) et ça va te donner 0,9 + 0,09 + ... = 0,999... = 1
D'ailleurs il y a plein de manières de l'écrire cf. http://en.wikipedia.org/wiki/0.999...
Donc oui, 3.99 != 4 mais 3.999... = 4
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
De la vallée du vent ...
Distribution d'applications .NET avec DreamShield
DreamShield, Le site, forum, blog, wiki & Jeux
Mon blog, Cours et tutoriels pour apprendre C#, forum C#, Offres d’emploi développeur C#
Tout à fait d'accord avec vous les gars, mais si je peux me permettre,
les fonctions suivantes sont là pour ça, non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Math.Ceiling Math.Floor
si le nombre est supérieur à zéro tu prends Math.Floor sinon Math.Ceiling.
Un âne se croit savant parce qu'on le charge de livres (proverbe américain)
N'oubliez pas de avant de
Pas de question techniques par MP, c'est contre la philosophie du forum
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager