我正在尝试为购买的商品获得总价,但它没有正确添加,因为所有数字都存储为字符串。我已尝试使用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
}
答案 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()
,如果在添加不是您想要的内容之前四舍五入到两个小数点,则将其移除到其他地方。