|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre éprouvé
![]() |
Bonjour,
J'ai rencontré un problème inattendu dans le test unitaire suivant : Code :
En réalité, il ne marche pas. Après une recherche approfondie, je me suis aperçu que NumberFormat utilise une espace insécable (code #160). Voici le code du test corrigé Code :
A+ Gronono EDIT : On dit une espace. |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
C'est vrai qu'il y a un gros problème avec les séparateurs de millier, mais je pense que ça va plus loin encore...
Dans une application web + struts + struts-layout, j'avais utilisé le formateur DecimalFormat("#,###.00") ce qui donnait à l'affichage : pour 5000.5 -> 5 000,50 Le problème, c'est qu'il n'y avait pas moyen de faire l'opération inverse (avec le même formateur) : pour 5 000,50 -> 5 ??? ![]() Finalement, j'ai du retirer les séparateurs de millier pour que ça fonctionne, dommage... |
|
|
00
|
|
|
#3 | ||
|
Membre éprouvé
![]() |
En fait, si on sait que c'est une espace insécable, il n'y plus de problème. Le deuxième test le prouve :
Code :
C'est pour ces raisons qu'il faut que FAQ soit mise à jour. Le comportement que l'on attend n'est pas celui que l'on obtient (dut moins pour nous deux). A+ Gronono. |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 253 ![]() |
Juste pour info, en typographie, espace est féminin => une espace insécable. Pareil pour tout en typographie : Pour aérer le texte, ajoute une espace.
|
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
Citation:
![]() Ceci dit, ça ne fait pas vraiment avancer le problème de conversion avec blanc séparateur de millier... |
|
|
|
00
|
|
|
#6 | ||||||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 654 ![]() |
Citation:
Tu as alors deux solutions :
Citation:
Pour éviter cela il faut utiliser parse(String,ParsePosition) et vérifier les index, par exemple cette méthode parsera la totalité de la chaine qu'elle reçoit en paramètre, ou renverra une exception : Code :
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||||||
|
00
|
|
|
#7 |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
et bien pour une explication complète... merci à toi
C'est tout de même dommage qu'il ne traite pas les blancs simples lui même, le fait d'utiliser le blanc insécable étant certainement lié au problème de césure des navigateurs sur blanc (\u0020)... Du coup, je vais peut-être me faire une classe utilitaire étendant DecimalFormat pour redéfinir la méthode parse et convertir les \u0020 en \u00A0 |
|
|
00
|
|
|
#8 | ||
|
Membre éprouvé
![]() |
Citation:
Citation:
A+ Gronono |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com