Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : int ou float ?? [ Algorithme / Autre ] (amine1234Z)

mercredi 21 mai 2008 à 00:42:25 | int ou float ??

amine1234Z

Salut
j'ai fait comme ca:
int t1=0,i1=0,P1=0;
-------------------------------------------------------------------------
i1 = Integer.parseInt(MonText.getText().trim());// rendre le contenu de "MonText" en entie.
--------------------------------------------------------------------------
aprés l'initialisation j'affecte
i1=2.2
et P1=300.02
et
    t1=i1*P1;

MAIS
l'errur ci dessus ce lance;
------------------------------------------------------
java.lang.NumberFormatException: For input string: "2,2"

...
....etc
------------------------------------------------------
peut etre il faut convertire le contenu de "MonText" en float
et il une autre manier de passer vers float?
et comment en ecrit la vergule dans les nombre réél est ce que avec le point (.) ou avec  la vergule nomramel (,) ?
MERCI

% Mauvais Sens %

mercredi 21 mai 2008 à 06:56:53 | Re : int ou float ??

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Salut,

Forcément, "2,2" n'est ni un float, et encore moins un entier !

Convertit le d'abord en un nombre pouvant être convertit (remplace la virgule de notre format français, en un point du format américain, ce qui sera déjà plus simple à convertir !).

Ensuite, convertit ce "nouveau" nombre en Float, et récupère sa valeur entière :

i1 = Float.parseFloat(MonText.getText().trim().replace(",", ".")).intValue();
______________________________________
DarK Sidious

mercredi 21 mai 2008 à 09:01:15 | Re : int ou float ??

danimo

Réponse acceptée !
Salut,


         String MonText = "2.2";
         Float f = new Float(MonText);// covertir le contenu de "MonText" en Float.
         System.out.println("MonText/f = " + MonText + "/" + f);
         float i1 = f.floatValue();
         System.out.println("i1 = " + i1);
         float P1=300.02F;
         System.out.println("P1 = " + P1);
         float t1=i1*P1;
         System.out.println("t1 = " + t1);
     
Cordialement,

...\ Dan /...


mercredi 21 mai 2008 à 13:43:31 | Re : int ou float ??

amine1234Z

SAlut
MERCI beacoup ca a marché
Thanks a lot
@+

% Mauvais Sens %

jeudi 22 mai 2008 à 18:54:03 | Re : int ou float ??

verdy_p

Réponse acceptée !

Sans même faire appel à String.replace(...), il suffisait d'indiquer la "Locale" à utiliser pour la conversion (Locale.US ou Locale.FRANCE par exemple).

Ceci dit, si c'est utilisateur qui a tapé la valeur, il a peut-être lui-même saisi une virgule ou un point, et String.replace(".", ",") permet de ne pas tenir compte de cette différence.

Les fonctions parseXxx()  ou les constructeurs comme Float(String) utilisent par défaut la locale du système local. Cette locale n'est pas nécessairement la locale anglophone (cela dépend des paramètres de démarrage de la VM Java ou de son environnement dans un navigateur ou une ligne de commande de l'espace utilisateur local), mais on peut préciser explicitement cette locale (ou encore le paramètre de codage de texte qui n'est pas nécessairement la page de code 1252 ou même ISO 8859-1, même sous Windows en version française! Cela dépend aussi de l'OS support et de paramères d'installation de la VM)
La seule chose qui semble sure est que les locales US et française seront supportées, de même que les codages US-ASCI, ISO-8859-1, et Unicode UTF-8 ou UTF-16, ainsi qu'un codage spécifique à la plateforme locale. Tout le reste n'est pas garanti et varie d'une VM à l'autre ou d'un utilisateur à l'autre (et aussi de l'installation ou non des librairies d'internationalisation lors de l'installation de Java sur le poste client ou sur un serveur d'application JSP)

Pour répondre à ta dernière question: ce n'est donc ni forcément le point ni la virgule, car cela dépend de la "Locale" utilisée et c'est à toi de la préciser si nécessaire dans ton code (méfies-toi des "Locales" par défaut, si tu l'oublies c'est le meilleur moyen d'avoir une appli qui fonctionne chez certains et pas chez d'autres: nombre d'applis américaines supposent une locale US mais c'est souvent faux sur nos PCs ou Macs ou même nos serveurs d'applications). Consulte les Javadoc pour voir quelles fonctions de conversion de texte utilisent la locale par défaut et comment préciser une autre locale si nécessaire.


vendredi 23 mai 2008 à 00:20:20 | Re : int ou float ??

amine1234Z

Salut
wow merci beaucoup verdy_p  pour la grand utile reponse
MAIS est ce que je vais l'appeler just comme ça :
Locale.FRANCE
je sais pas ce que je doit faire, je suis un débutant en JAVA.
une autre question et il possible d'utiliser cette "locale" dans le cas ou j'ai tapper un
faut mot ou une fausse phrase dans une zone de text, comme au niveau du word ??
c'est a dire si j'ai tapper un faut mot, il me donne la possibilité de la correcté.

MERCI

% Mauvais Sens %

vendredi 23 mai 2008 à 00:31:44 | Re : int ou float ??

verdy_p

regarde javadoc pour la classe de base du JRE : java.util.Locale
ensuite, regarde les classes qui réalisent les conversions de chaines: partout où cela peut dépendre d'une locale, les méthodes qui utilisaient une locale par défaut acceptent aussi qu'on précise la locale à utiliser.
Donc:

import java.util.Locale;
...
puis référence Locale.US ou Locale.FRANCE explicitement suivant ce que tu attends.

Fais la même chose concernant les encodages: le codage local natif du système n'est pas forcément portable, notamment celui utilisé pour coder les noms de fichiers locaux, ou pour écrire dans des ficheirs texte locaux. Il faut souvent préciser une paramètre optionnel: je conseille vivement de ne plus utiliser que "UTF-8" et d'abandonner le codage système natif par défaut qui persiste uniquement pour compatibilité. D'ailleurs je conseille aussi de compiler le code Java avec les warnings activés sur les méthodes obsolètes qui utilisent encore un codage système local par défaut, sachant que le jeux de caractère natif 8 bits local diffère d'un pays à l'autre même pour la même version de Windows: le même programme avec le même source et compilé de façon identique pour la même version de java risque de ne pas marcher pareil d'une machine à l'autre suivant la Locale alors même que le programme manipule exactement les mêmes fichiers de données et se connecte aux mêmes serveurs distants (la Locale comprend des paramètres dépendant de choix de 'lu'ilisteur courant ou de paramètres système purement locaux comme la langue, l'écriture utilisée, le jeu de caractère natif du système de fichier local, les conventions sur les nombres et dates, etc.)



Cette discussion est classé dans : int, p1, float, i1, montext


Répondre à ce message

Sujets en rapport avec ce message

?Tableau int & float [ par kaliel ] Bonjour à tous !!C'est mon anniversaire mais ca ne m'enpêche pas d'être au boulot et de faire du ..... Java.J'ai une petite question, je voudrais décl Probleme dans mon programme fractale [ par Jarod1980 ] Bonjour tout le monde,J'aurais besoin d'aide pour résoudre un petit problème. J'ai adapté un programme que j'ai fais en C (fractale de Julia) en Java. transformer une string en un int ou un float? [ par chtieu62 ] Comment peut on faire pour changer une chaine de caractere en entier ou flottant?Est ce possible?Quelles méthodes?Quels imports?Merci [urgent]passage de variable entre les class [ par developvbdebut ] Bonjour tout le mondeVoici la class Calculimport javax.swing.*;import java.awt.*;import java.awt.event.*; public class Calcul{< point sur polyligne [ par umafaid ] Bonjour,je réponds à ce forum parce que j'ai un problème assez similaire à ce que gracerare veut faire sauf que comme le recommande bouye, je n'utilis Probleme avec "possible loss of precision" [ par mleloc ] Bonjour a tous, j'ai un petit probleme avec ce morceau de code:class ZoneDessin extends Canvas{    float charge1;    float abscisse;    Point p;       probleme de serialization [ par hidalg007 ] bhen ce que je fais c'est tout simplement importr des listes d'objet deja définis et serializables et les modifier , mettre a joure la liste et reseri utiliser JTable [ par Manelh ] Je doit réaliser une application qui permet de lire la taille d'un tableau,saisir les valeurs(dans un JTable) pour le trier ,mon problème c que je n'a DEBUTANT JAVA [ par CABONIST ] bon,je suis un débutant en language java,j'arrive pas a faire des interface du mon projet.j'ai tout fais dan une classe et j'ai étulisé la notion de C C++ -> Java [ par christouilhe ] Bonjour à vous tous.J'ai une question à vous poser ...Il se trouve que je dois retranscrire un programme C++ en Java, mais je ne sais pas du tout comm


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.