我只需要得到两个小数,但是toFixed()似乎不起作用

时间:2019-01-25 16:20:44

标签: javascript reactjs

我尝试将结果变量切成两个十进制数字,但一切正常。即使使用Number()函数,因为 price 变量似乎是一个字符串。但是没有任何作用。在某些输入中,显示大量的小数:

enter image description here

这是我的代码:

_renderCoin() {
        console.log(this.state.bpi); 
        const { input } = this.state;       
        const { bpi } = this.state;

        return Object.keys(bpi)
            .map(coin => {
                const price = bpi[coin].rate_float;
                // console.log(price);
                // console.log(typeof price);
                const result = Number(price.toFixed(2));
                console.log(typeof result);

                // const pi = Math.PI;
                // const a = pi.toFixed(4)
                // console.log(a);


                if (coin === 'USD'){
                    return (
                        <div className={styles.info} key={coin}>
                            <hr/>
                            <strong>{input}</strong> BTC is: <strong>U$S      
                                                    {input * result</strong>

                        <span className={styles.money}>{coin}</span>
                    </div>
                )  
            } else {
                return (
                    <div className={styles.info} key={coin}>
                        <strong>{input}</strong> BTC is: <strong>$ 
                                                       {input*result</strong>
                        <span className={styles.money}>{coin}</span>
                    </div>
                )
            }
        })

}

    _handleChange(event){
        this.setState({
            input: event.target.value
        })
    }

1 个答案:

答案 0 :(得分:1)

您正在四舍五入后进行计算。相反,您需要在将结果输出为字符串的位置调用toFixed

const price = bpi[coin].rate_float;
const result = input * price; // do the calculation here!
console.log(typeof result); // still a number

const denom = coin === 'USD' ? 'US$' : '$';
return (<div className={styles.info} key={coin}>
    <hr/>
    <strong>{input}</strong> BTC is: <strong>{denom}{result.toFixed(2)}</strong>
//                                                         ^^^^^^^^^^^
    <span className={styles.money}>{coin}</span>
</div>);