在React Native中使用小数

Nim*_*nya 7 react-native

我有一个状态value: 10.00,一旦我用一些操作更新它并将其添加到<Text>".00"部分被修剪掉.如果它是一个像10.50的值,它将显示为10.5

这是一个问题,因为我想显示货币值.怎么办呢?

Nim*_*nya 25

找到了答案.要使用十进制值获取值,请使用toFixed()方法.

例:

var value = 10;
value = value.toFixed(2);
this.setState({subTotal: value});
Run Code Online (Sandbox Code Playgroud)

输出将是:10.00

  • 或: this.setState({subTotal: value.toFixed(2)}); 现在你的价值将保持一个数字。 (3认同)
  • 这会将您的数字四舍五入到小数点后两位。根据您的用例,最好传入一个字符串而不是使用 toFixed 创建一个字符串。 (2认同)
  • 如果用户在数字前的文本字段中退格或添加小数,则经过验证的答案可能会返回 NaN 将以下内容添加到您的函数中以防止:`if (isNaN(value)) {return 0}` (2认同)

Gau*_*ani 6

这是您也可以尝试的另一种解决方案,我需要的是不允许输入超过 2 个十进制数字(小数点后),也不应该允许超过两个小数点或任何其他字符。

    ConTwoDecDigit=(digit)=>{
      return digit.indexOf(".")>0?
              digit.split(".").length>=2?
               digit.split(".")[0]+"."+digit.split(".")[1].substring(-1,2)
              : digit
             : digit
    }
    <TextInput 
       value={this.state.salary}
       onChangeText={value => this.setState({ salary: this.ConTwoDecDigit(value) })} 
      keyboardType={'decimal-pad'}
    />
Run Code Online (Sandbox Code Playgroud)