echarts的百分比这个要怎么让他显示0%

vue的一张echarts环形图,当数据全部为0的时候,算出来的百分比不是0%而是NaN%,怎么样让它变成0%?

img

async ShorepowermaintainStatistics() {
      let res = await shorepowermaintainStatistics(this.listQuery);
      if (res.code === "0") {
        const total = res.data.neiHe + res.data.yanJiang + res.data.yanHai;
        var option1 = {
          title: {
            text: `设备总数:${total}台`,
            textStyle: {
              color: "#00FFFF",
              fontSize: "14px",
            },
            right: 0,
            top: 15,
          },
          legend: {
            right: 0,
            top: "center",
            orient: "",
            icon: "circle",
            textStyle: {
              color: "white",
            },
            formatter: function (name) {
              var data = option1.series.data;
              var total = 0;
              var tarValue;
              for (var i = 0, l = data.length; i < l; i++) {
                total += data[i].value;
                if (data[i].name == name) {
                  tarValue = data[i].value;
                }
              }
              var p = ((tarValue / total) * 100).toFixed(1);
              return name + " " + " | " + " " + " " + p + "% " + tarValue;
            },
          },
          tooltip: {},
          series: {
            name: "",
            type: "pie",
            radius: ["40%", "90%"],
            center: ["30%", "55%"],
            //roseType: "area",
            label: {
              show: false,
            },
            color: ["#0EBB5B", "#F19149", "#A0A0A0"],
            data: [
              { value: res.data.neiHe, name: "内河" },
              { value: res.data.yanJiang, name: "沿江" },
              { value: res.data.yanHai, name: "沿海" },
            ],
          },
        };

img

var p = ((Number(tarValue) /Number(total)) * 100).toFixed(1);

因为 需要转换 一下 转成数字

两个都为0的情况下就加个判断吧
if(p=="NaN"){
p=0
}
以下三个会出的结果
console.log(0/0) NaN
console.log(0/1) 0
console.log(1/0) Infinity

对结果做一下判断,如果是NaN或者undefined,则默认为0

var res = tarValue / total
console.log("res", res)
var p = ((isNaN(res) || res == undefined ? 0 : res) * 100).toFixed(1)
var p = total ==0?0:((tarValue / total) * 100).toFixed(1);