如何在Java中显示百分比数字?-灵析社区

momo

在 Excel 单元格中显示一个格式为百分比的值,例如12.3%。 默认情况下,该值显示为文本,但我需要将其显示为数字。

阅读量:12

点赞量:0

问AI
如果你说的是通过java编辑excel,使单元格中本来显示为百分比的数值显示为数字(即去掉百分号并将数值除100),可以给单元格设置格式 在apache POI中可以这样写 CellStyle numberStyle = workbook.createCellStyle(); numberStyle.setDataFormat(workbook.createDataFormat().getFormat("0.00")); cell.setCellStyle(numberStyle); 其他操作excel的库也差不太多。这样做的前提是你的excel文件中,单元格的值确实是数值而不是字符串。 如果你问的是java怎么将一个符合"^-?(?!0\d)\d+(\.\d+)?%$"的字符串转换为double类型或BigDecimal类型的变量,那么可以先通过正则验证字符串的有效性,然后用BigDecimal类从字符串中构造一个对象。 import java.math.BigDecimal; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String percentString = "25.5%"; String regex = "^-?(?!0\\d)\\d+(\\.\\d+)?%$"; if (Pattern.matches(regex, percentString)) { // 移除百分号并转换为BigDecimal String numericString = percentString.replace("%", ""); BigDecimal percentValue = new BigDecimal(numericString); // 将百分数转换为小数形式 BigDecimal decimalValue = percentValue.divide(BigDecimal.valueOf(100)); System.out.println("Converted BigDecimal: " + decimalValue); } else { System.out.println("Invalid percent string"); } } } 鉴于你给的信息太少了,建议还是先丰富下问题吧