如何在Java中显示百分比数字?
在 Excel 单元格中显示一个格式为百分比的值,例如12.3%。
默认情况下,该值显示为文本,但我需要将其显示为数字。
回答:
如果你说的是通过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");
}
}
}
鉴于你给的信息太少了,建议还是先丰富下问题吧
回答:
这个方法应该有很多吧,上面的那个回答已经给了一种,除了显示百分数之外,还有其他的很多种方式可以显示:
Java">/*https://demo.grapecity.com.cn/documents-api-excel-java/demos/numberformats
*/
// Create a new workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
worksheet.getRange("A:H").setColumnWidth(17);
// Display 111 as 111.
worksheet.getRange("A1").setValue(111);
worksheet.getRange("A1").setNumberFormat("#####");
// Display 222 as 00222.
worksheet.getRange("B1").setValue(222);
worksheet.getRange("B1").setNumberFormat("00000");
// Display 12345678 as 12,345,678(千分位表示)
worksheet.getRange("C1").setValue(12345678);
worksheet.getRange("C1").setNumberFormat("#,#");
// Display .126 as 0.13.(小数点表示)
worksheet.getRange("D1").setValue(.126);
worksheet.getRange("D1").setNumberFormat("0.##");
// Display 74.4 as 74.400.(小数点后表示两位)
worksheet.getRange("E1").setValue(74.4);
worksheet.getRange("E1").setNumberFormat("##.000");
// Display 1.6 as 160.0%.(百分比表示)
worksheet.getRange("F1").setValue(1.6);
worksheet.getRange("F1").setNumberFormat("0.0%");
// Display 4321 as $4,321.00.(井号表示)
worksheet.getRange("G1").setValue(4321);
worksheet.getRange("G1").setNumberFormat("$#,##0.00");
// Display 8.75 as 8 3/4.(分数表示)
worksheet.getRange("H1").setValue(8.75);
worksheet.getRange("H1").setNumberFormat("# ?/?");
// Save to an excel file
workbook.save("NumberFormats.xlsx");
以上是 如何在Java中显示百分比数字? 的全部内容, 来源链接: utcz.com/p/945395.html