[英]Change Double format - dot to comma
我必须将Double格式从点更改为逗号。 我尝试这样:
DecimalFormat df = new DecimalFormat("#,00",
DecimalFormatSymbols.getInstance(Locale.GERMANY));
selectedSheet.addCell(new Number(selectedCellColumn,
selectedCellRow,
Double.valueOf(df.format(value)));
但它不起作用。 您有任何想法如何将点更改为逗号吗?
对于(我猜)ApachePOI库来设置不同的CellUnitStyle,请使用以下命令:
CellStyle unitStyle = workbook.createCellStyle();
unitStyle.setDataFormat((short) BuiltinFormats.getBuiltinFormat("#,##0.00"));
cell.setCellValue(value);
cell.setCellStyle(unit);
内置了以下格式: ApachePOI内置格式
new Number()
-我假设这将double作为第三个参数? 在这种情况下,不可能在传递双精度值之前对其进行格式化,因此需要在单元格格式设置中设置工作表如何显示数字的格式。
还是问题是您有一个字符串,例如“ 5,3”,并希望将其转换为double? 变量value
似乎已经包含一个双精度value
。
您在DecimalFormat
的Java文档中有一个符号表:
Symbol Location Localized? Meaning
------------------------------------------
0 Number Yes Digit
# Number Yes Digit, zero shows as absent
. Number Yes Decimal separator or monetary decimal separator
- Number Yes Minus sign
, Number Yes Grouping separator
etc...
您使用的是分组分隔符,
但您想使用十进制分隔符.
,因此将您的字符串从#,00
更改为#.00
:
DecimalFormat df = new DecimalFormat("#.00", DecimalFormatSymbols.getInstance(Locale.GERMANY));
String format = df.format(3.23456);
System.out.println(format); // prints 3,23
代码:
double value = 123.12345;
DecimalFormatSymbols decimalFormatSymbols = DecimalFormatSymbols.getInstance(Locale.GERMANY);
decimalFormatSymbols.setDecimalSeparator(',');
DecimalFormat df = new DecimalFormat("#.###", decimalFormatSymbols);
System.out.println(df.format(value));
selectedSheet.addCell(new Number(selectedCellColumn, selectedCellRow, Double.valueOf(df.format(value)));
输出:
123,123
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.