dte*_*ech 96 java double formatting
我目前使用以下代码打印双:
return String.format("%.2f", someDouble);
Run Code Online (Sandbox Code Playgroud)
这很有效,除了Java使用我的Locale的小数分隔符(逗号),而我想使用一个点.是否有捷径可寻?
Jon*_*eet 159
使用其重载String.format可以指定语言环境:
return String.format(Locale.ROOT, "%.2f", someDouble);
Run Code Online (Sandbox Code Playgroud)
如果您只是格式化数字 - 就像您在这里一样 - 那么使用NumberFormat可能更合适.但是如果你需要其余的格式化功能String.format,这应该可以正常工作.
Fed*_*rgi 19
更激动人心的解决方案是在main()中尽早设置您的Locale.
喜欢:
Locale.setDefault(new Locale("en", "US"));
Run Code Online (Sandbox Code Playgroud)
Sim*_*ter 10
您可以将其他Locale传递给java.lang.String.format以及java.io.PrintStream.printf(例如System.out.printf()):
import java.util.Locale;
public class PrintfLocales {
public static void main(String args[]) {
System.out.printf("%.2f: Default locale\n", 3.1415926535);
System.out.printf(Locale.GERMANY, "%.2f: Germany locale\n", 3.1415926535);
System.out.printf(Locale.US, "%.2f: US locale\n", 3.1415926535);
}
}
Run Code Online (Sandbox Code Playgroud)
这导致以下(在我的PC上):
$ java PrintfLocales
3.14: Default locale
3,14: Germany locale
3.14: US locale
Run Code Online (Sandbox Code Playgroud)
请参阅Java API中的String.format.
太晚了,但正如这里提到的那样是NumberFormat(和它的子类DecimalFormat)的样本用法
public static String format(double num) {
DecimalFormatSymbols decimalSymbols = DecimalFormatSymbols.getInstance();
decimalSymbols.setDecimalSeparator('.');
return new DecimalFormat("0.00", decimalSymbols).format(num);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81789 次 |
| 最近记录: |