Javascript toExpontial在react native中未定义

Javascript toExpontial在react native中未定义,javascript,android,react-native,Javascript,Android,React Native,总是有这样的错误:num.toExponential不是函数。num.toExponential未定义。 为什么toExponential()没有在react native上运行?如何在react native中复制此功能 function ifLessOneSatoshi(raw_num){ const num = raw_num; if(raw_num < 0){ num = Math.abs(raw_num); } if(num < 0.000001){

总是有这样的错误:num.toExponential不是函数。num.toExponential未定义。 为什么
toExponential()
没有在react native上运行?如何在react native中复制此功能

function ifLessOneSatoshi(raw_num){
  const num = raw_num;
  if(raw_num < 0){
    num = Math.abs(raw_num);
  }
  if(num < 0.000001){
    if(raw_num < 0){
      const abn = abs(num);
      return -1 * abn.toExponential();
    }
    return num.toExponential();
  }
  return raw_num;
}
函数ifLessOneSatoshi(原始数量){
const num=原始数量;
如果(原始数量<0){
num=Math.abs(原始数量);
}
如果(数值<0.000001){
如果(原始数量<0){
常数abn=abs(num);
返回-1*abn.toExponential();
}
返回num.toExponential();
}
返回原始数量;
}
下面是我根据云海的答案实现的:

function ifLessOneMillionth(raw_num){
  var num = Number.parseFloat(raw_num); //<=this line you may use parseFloat(raw_num)
  if(raw_num < 0){
    num = Math.abs(raw_num);
  }
  if(num < 0.000001){
    if(raw_num < 0){
      //const abn = Math.abs(num);
      return -num.toExponential(); // this line
    }
    return num.toExponential();
  }
  return raw_num;
}
函数ifLessOneMillionth(原始数量){

var num=Number.parseFloat(raw_num);//您遇到的问题更少

首先,重新分配
const num
const
意味着您不能在声明后重新分配变量。因此您应该将其更改为
var

其次,未定义的原因来自
raw\u num
,如果它不是一个“数字对象”。根据格式的不同,您可能需要类似于
parseFloat(raw\u num)
(我不确定raw\u num是否是十进制或其他形式)。您需要小心

然后,最后一个问题是
-1*num.toExponential()
,num.toExponential()返回一个
字符串
,因此为了使其为负值,应该使用
字符串串联
,而不是数学运算

function ifLessOneSatoshi(raw_num){
  var num = raw_num; //<=this line you may use parseFloat(raw_num)
  if(raw_num < 0){
    num = Math.abs(raw_num);
  }
  if(num < 0.000001){
    if(raw_num < 0){
      const abn = Math.abs(num);
      return -abn.toExponential(); // this line
    }
    return num.toExponential();
  }
  return raw_num;
}
函数ifLessOneSatoshi(原始数量){

var num=raw_num;//您提供的代码块是有效的,并且肯定是可运行的。问题可能来自其他地方。我怀疑您代码中使用的num不是
num ojbect
,因此它会引发错误。当您悬停函数时,它会给出一个描述,对吗?这个不是。它只是“any”当我悬停时。是的,如果
num
不是一个数字,就会发生这种情况。你是否尝试过你的问题示例代码。没有任何块,但它仍然会引发错误。我编辑了代码。这就是我使用的代码。因此,如果
num
是一个字符串,它将抛出错误?这很好。正如你所说,我最终使用了parseFloat,并且是generic、 我删除了
const abn=Math.abs(num);
,不再需要了,因为我将不再乘
num
。而且“-”的串联运算符也不需要了,我只是像这样直接在它前面加上
-num.toExponential()
。谢谢!我在上面添加了我的最终实现。@user10971804 thx,用于字符串concat noting。很高兴它有帮助,您介意将答案屏蔽为accept吗。