如何将数字加在一起并获得两位小数?

时间:2018-03-08 15:40:34

标签: javascript numbers

我正在尝试为购买的商品获得总价,但它没有正确添加,因为所有数字都存储为字符串。我已尝试使用Number(price).toFixed(2),但toFixed()方法以字符串形式返回数字,因此无法与其他数字一起添加。你能看一下我的代码并告诉我如何才能得到它,这样数字会正确添加吗?

findTotal = () => {
let currentTotal = 0, { receiptProducts } = this.props

if(this.props.expeditedShipping){
  receiptProducts.map((product) => {
    currentTotal += Number(product.price)toFixed(2) + Number(product.shippingPrice).toFixed(2)
   })
  return currentTotal
} else {
  receiptProducts.map((product) => {
    currentTotal += Number(product.price).toFixed(2) + Number(product.shippingPrice).toFixed(2)
  })
} return currentTotal
}

1 个答案:

答案 0 :(得分:0)

你很亲密!您只需将字符串解析回数字,然后添加就可以正常工作:

findTotal = () => {
let currentTotal = 0, { receiptProducts } = this.props

if(this.props.expeditedShipping){
  receiptProducts.map((product) => {
    currentTotal += parseFloat(Number(product.price).toFixed(2)) + parseFloat(Number(product.shippingPrice).toFixed(2))
   })
  return currentTotal
} else {
  receiptProducts.map((product) => {
    currentTotal += parseFloat(Number(product.price).toFixed(2)) + parseFloat(Number(product.shippingPrice).toFixed(2))
  })
} return currentTotal
}

您也可以在返回值上使用.toFixed(),如果在添加不是您想要的内容之前四舍五入到两个小数点,则将其移除到其他地方。