Comment formater un double avec String.format
à String avec un point entre l'entier et la partie décimale?
String s = String.format("%.2f", price);
Les formats ci-dessus uniquement avec une virgule: ",".
String.format(String, Object ...)
utilise les paramètres régionaux par défaut de votre JVM. Vous pouvez utiliser les paramètres régionaux à l'aide de String.format(Locale, String, Object ...)
ou Java.util.Formatter
directement.
String s = String.format(Locale.US, "%.2f", price);
ou
String s = new Formatter(Locale.US).format("%.2f", price);
ou
// do this at application startup, e.g. in your main() method
Locale.setDefault(Locale.US);
// now you can use String.format(..) as you did before
String s = String.format("%.2f", price);
ou
// set locale using system properties at JVM startup
Java -Duser.language=en -Duser.region=US ...
Sur cette base post vous pouvez le faire comme ça et cela fonctionne pour moi sur Android 7.0
import Java.text.DecimalFormat
import Java.text.DecimalFormatSymbols
DecimalFormat df = new DecimalFormat("#,##0.00");
df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.ITALY));
System.out.println(df.format(yourNumber)); //will output 123.456,78
De cette façon, vous avez des points et des virgules en fonction de votre Locale
Réponse modifiée et corrigée grâce au commentaire de Kevin van Mierlo