Problème d'addition en java

jpf40200 -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Bonjour à tous
Afin d'effectuer des calculs sur des variables, j'utilise cette syntaxe :
var T4=new java.lang.Float((T1*T2));
manager.getResourceManager().setValueLocally(resource,"Total",T4,user);

Si je veux faire une division ((T1/T2));
ça fonctionne

En revanche ((T1+T2));
provoque :
numberformatexception multiple points

Quelqu'un a la solution ?


A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
var T4 : ne confondrais-tu pas Java et JavaScript ?

Puisqu'il n'y a pas vraiment de typage en JavaScript, si tu as T1 = "1.2", et T2="3.4", il est évident que les opérateur *, - et / s'appliquent à des valeurs de type nombre. En revanche l'opérateur + qui peut être appliqué à des nombres ou a des chaines c'est plus ambiguë et en l'occurrence ici il est appliqué en considérant T1 et T2 comme des chaînes de caractères en faisant leur concaténation on a donc T1+T2="1.23.4" qui ne représente plus un nombre et qui génère le message d'erreur assez explicite : NumberFormatException multiple points puisque tu as deux virgules quand on en attend au plus une...

Pour être correct il faut donc appliquer l'opérateur + à des nombres et non pas à des chaînes de caractères c'est à dire calculer var T4 = new Float(T1)+new Float(T2);
0
jpf40200
 
Merci de ta réponse, mais si j'effectue le changement que tu m'indiques j'obtiens le message :

org.mozilla.javascript.EcmaError: ReferenceError: "Float" n'est pas défini (Script#86)
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Oui j'ai raccourci l'écriture, mais j'imagine qu'en mettant java.lang.util.Float ça doit marcher
0
jpf40200
 
Et avec cette solution j'ai :

org.mozilla.javascript.EcmaError: TypeError: [JavaPackage java.lang.util.Float] n'est pas une fonction, est un object (Script#86)
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
J'avoue que je ne sais pas, je ne connais pas JavaScript, Le NumberFormatException qui est une erreur Java ça je sais ce que c'est et je t'ai résolu le problème, le reste c'est du JavaScript...
Essaye de décomposer peut être avec var F1=new Float(T1), F2=new Float(T2), T4=F1+F2
0
jpf40200
 
Et en décomposant ça donne :
com.axemble.vdp.exceptions.TypeMismatchException

:-(
0