【问题标题】:percentage value in column gives Nan and infinity列中的百分比值给出 Nan 和无穷大
【发布时间】:2019-09-24 00:05:23
【问题描述】:

我正在尝试逐行计算百分比,结果在某些情况下会给出 NAN 或无穷大。

结果在列中显示 NAN 或无穷大以计算百分比

 <Column    editable={false}    value={  ((this.state.someRow1!== null  &&` 
 this.state.someRow1!== 0 )&& (this.state.someRow2!== null &&`  
 this.state.someRow2!== 0)) ? (this.state.someRow1* 100) / 
 this.state.someRow2`
  : "" }

0 或实际百分比

【问题讨论】:

  • 这三行中的` 字符是怎么回事?
  • ccopy 错误,但它的 &&..谢谢
  • 如果this.state.someRow2"0",或者"" 那么你会得到Infinity ...如果this.state.someRow1 是"",你会得到NaN .. . 检查 someRow1 和 someRow2 中值的类型 - 或将所有出现的this.state.someRow? 更改为+this.state.someRow?

标签: javascript reactjs jsx


【解决方案1】:

将值强制转换为数字 - 这也使代码更简单,因为 +null === 0 - (就像 +"" 一样)您只需检查 0 的每个“someRow”

<Column    editable={false}    value={  
        ( !isNaN(this.state.someRow1) &&
          !isNaN(this.state.someRow2) &&
          +this.state.someRow1!== 0 && 
          +this.state.someRow2!== 0) ?
        +this.state.someRow1 * 100 / +this.state.someRow2: "" 
    }

【讨论】:

  • 真的吗? this.state.someRow1this.state.someRow2 的确切类型和值是什么?它们必须是非空字符串、对象或未定义的东西
猜你喜欢
  • 1970-01-01
  • 2017-02-25
  • 2019-03-19
  • 2019-10-11
  • 2016-08-13
  • 2014-09-21
  • 2016-10-16
  • 2016-09-22
相关资源
最近更新 更多