Java 为什么String.format(“%.2f”,10.0F)返回值10,00而不是10.00?
更新:删除上面问题中的“安卓5.0”,因为我觉得这与版本无关,但取决于语言环境 下面代码的通常输出为10.00。但在安卓5.0中,它返回值10,00Java 为什么String.format(“%.2f”,10.0F)返回值10,00而不是10.00?,java,android,android-5.0-lollipop,string.format,Java,Android,Android 5.0 Lollipop,String.format,更新:删除上面问题中的“安卓5.0”,因为我觉得这与版本无关,但取决于语言环境 下面代码的通常输出为10.00。但在安卓5.0中,它返回值10,00 String value = String.format("%.2f", 10.0F); System.out.println("Value is "+value); //For Console Output Log.w("NumberClass.java","Value is "+value); //For Logcat Output 是
String value = String.format("%.2f", 10.0F);
System.out.println("Value is "+value); //For Console Output
Log.w("NumberClass.java","Value is "+value); //For Logcat Output
是的功能
String.format("%.2f", 10.0F);
安卓棒棒糖有变化吗?如果是这样,这种奇怪行为的解决方案是什么
我需要10.00作为输出。
String.format()的文档说明:
使用提供的格式和返回本地化的格式化字符串
参数,使用用户的默认区域设置
所以,如果你是法国人,会使用昏迷,但如果你是美国人,会使用圆点
您可能希望使用String.format(区域设置、字符串格式、对象…参数)
(这是您当前使用的函数的重载)来获得所需的行为。(见文件)。您可以给它一个初始化的Locale
,以获得所需的行为。有关Locale
的详细信息,请查看文档。试试这个
String value2 = String.format(getResources().getConfiguration().locale,"%.2f", 10.0F);
它使用默认的语言环境。您应该使用特定的语言环境初始化格式化程序。