如何在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

回到顶部