不到一分钱如何落地,否则不要

How to floor if less than a penny, else do not

检查价值是一美分还是以下的最佳方法是什么。如果低于 return 0 否则为 Math.floored 值。

如果 price_usd 类似于 00.0031,下面的代码当前将 return 值 $0.01。 return 应该是 0.

但是,如果值为 00.56,它应该 return .56 美分,现在是这样。

const rounder = (balance, price_usd) => round(multiply(balance, price_usd));

constructor(props) {
    super(props)
    this.state = {
        asset: props.asset,
        balance: props.balance,
        value: rounder(props.balance, props.price_usd)
    };
    this.handleChange = this.handleChange.bind(this);
}

// value: rounder(props.balance, Math.floor(props.price_usd))

解决方案

parseFloat(Number(price_usd).toFixed(2))

你可以使用这个技巧。

var num1 = 0.56,
    num2 = 0.0031;

console.log(Math.floor(num1 * 100) / 100); // 0.56
console.log(Math.floor(num2 * 100) / 100); // 0.00