The code "%.2f".format(1.221) returns ۱,۲۲ instead of 1.22 on Persian/Arabic/Urdu language devices. How can I make it return always "English" numerals?
I tried "%.2f".format(1.221, Locale.ENGLISH) but it still does not work.
CodePudding user response:
You have the right idea but applying it incorrectly. You indeed simply update the locale. However, String.format is syntax sugar, and oversimplified - it can't do that. You have to do what String.format does under the hood use the Formatter class:
import java.util.Formatter;
void main() {
var fmt = new Formatter(Locale.ENGLISH);
println(fmt.format("%.2f", 1.221));
}
