.饼图{高度:计算(100vh-281px);最小高度:688px;//边框:1px纯红色;场景:渲染饼图时,lengend中的百分比与val/total和series中label自动渲染计算的结果不同。示例:解决方法:/***获取给定精度的数据,并保证valueList中的百分比之和为1*使用最大余数法*@param{number[]}valueList所有数据的列表*@param{number}idx数据索引*@param{number}precisionprecision*@return{number}percentage*/exportfunctiongetPercentWithPrecision(valueList,idx,precision){if(!valueList[idx]){return0}varsum=valueList.reduce(function(acc,val){returnacc+(isNaN(val)?0:val)},0)if(sum===0){return0}vardigits=Math.pow(10,精度)varvotesPerQuota=valueList.map(val=>{return((isNaN(val)?0:val)/sum)*digits*100})vartargetSeats=digits*100varseats=votesPerQuota.map(votes=>Math.floor(votes))varcurrentSum=席位。减少(函数(acc,val){返回acc+val},0)varremainder=votesPerQuota。map((votes,idx)=>votes-seats[idx])//有剩余的选票.while(currentSummax){max=remainder[i]maxId=i}}//添加对最大余数的投票。++seats[maxId]remainder[maxId]=0++currentSum}returnseats[idx]/digits}所有代码