第一种办法:后端获取到的数据格式是:0.16666666666666666,目的是:想要转成16.67%显示在前端界面
代码实现:主要使用了Math.round()方法,具有四舍五入的功能,以及toFixed()这个方法规定小数的位数,比如50%后面没有小数点,于是补上0,变成50.00%
// 小数点转百分号的处理函数 const renderContent = (value) => { if (value != undefined && value != null) { // 转为百分比展示,如数据为0.16666666666666666这个数据转换成16.67%,以及如果是0.5这种转换成50.00%格式。 const scale = ((Math.round((value * 10000)))/100.00).toFixed(2) + '%'; return scale; } };
后端代码实现如下:
if (creditsAndPeriodsList.getTotalCredit() != null && creditsAndPeriodsList.getTotalCredit() != 0) {
// 保证模块学分(Double类类型)不能为null,不然会报空指针
if (creditsAndPeriodsList.getSchemeSystemCredit() != null) {
double creditTemp = creditsAndPeriodsList.getSchemeSystemCredit()
/ creditsAndPeriodsList.getTotalCredit(); // 获取到的是0.16666666666666666
creditsAndPeriodsList.setCreditScale(creditTemp); // 设置学分比例 }
第二种办法:
后端获取到的数据格式是:0.1667,目的是:想要转成16.67%显示在前端界面
// 小数点转百分号的处理函数 const renderContent = (value) => { if (value != undefined && value != null) { // 转为百分比展示,如数据为0.1667这个数据转换成16.67%,以及如果是0.5这种转换成50.00%格式。 const scale = (value*100.00).toFixed(2) + '%'; return scale; } };
后端实现如下:
if (creditsAndPeriodsList.getTotalCredit() != null && creditsAndPeriodsList.getTotalCredit() != 0) {
// 保证模块学分(Double类类型)不能为null,不然会报空指针
if (creditsAndPeriodsList.getSchemeSystemCredit() != null) {
double creditTemp = creditsAndPeriodsList.getSchemeSystemCredit()
/ creditsAndPeriodsList.getTotalCredit();
double creditScale = new BigDecimal(creditTemp).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); // 保留小数点后四位 输出0.1667
creditsAndPeriodsList.setCreditScale(creditScale); // 设置学分比例
}
效果图如: