亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

toFixed() 不是函數

toFixed() 不是函數

慕工程0101907 2023-05-25 16:41:02
我在使用 toFixed() 函數時遇到困難。在下面的代碼中,當我調用 setState 時,我試圖將計算固定為兩位小數,但由于某種原因,我收到一條錯誤消息toFixed() is not a function我確保 tipPercent 和 subtotal 都被認為是數字typeof()this.setState({    subtotal,    tip: (this.state.tipPercent * subtotal).toFixed(2),    tax: (0.07 * subtotal).toFixed(2),    fee: 1,  });這是整個代碼塊:calculateTotal = () => {   var total = 0;   var subtotal = 0;   // calculate subtotal   Object.keys(this.state.bill.items).map((item) => {     subtotal +=       this.state.bill.items[item].price *       this.state.bill.items[item].quantity;   });   // calculate tax/tip   if (subtotal !== 0) {     this.setState({       subtotal,       tip: (this.state.tipPercent * subtotal).toFixed(2),       tax: (0.07 * subtotal).toFixed(2),       fee: 1,     });   } else {     this.setState({       subtotal,       tip: 0,       tax: 0,     });   }   total = subtotal + this.state.tax + this.state.tip + this.state.fee;   this.setState({ total: total, loading: false });};哪里this.state.bill.items看起來像這樣:Array [   Object {      "item": "Sip of Sunshine",      "price": 6.5,      "quantity": 4,   },   Object {     "item": "Sip of Sunshine",     "price": 6.5,     "quantity": 3,   },   Object {     "item": "Bud Light",     "price": 2.75,     "quantity": 2,   }, ]
查看完整描述

1 回答

?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

我能夠通過使用該Math.round()運算并將整個方程乘以 100,然后除以 100 來解決此解決方案,這使數學四舍五入到小數點后兩位,因為 JavaScript 本質上會出現很多地方。


由于toFixed()返回一個字符串,我無法將下面的狀態設置為正確的數值。Math.round()通過始終將其保留為四舍五入到小數點后兩位的數字來解決此問題。


這是該函數的更新版本calculateTotal():


calculateTotal = () => {

    var subtotal = 0;


    // calculate subtotal

    Object.keys(this.state.bill.items).forEach((item) => {

      subtotal +=

       this.state.bill.items[item].price *

       this.state.bill.items[item].quantity;

    });


    if (subtotal !== 0) {

      this.setState({

        subtotal,

        tip: Math.round(this.state.tipPercent * subtotal * 100) / 100,

        tax: Math.round(0.07 * subtotal * 100) / 100,

        fee: 1,

      });


      this.setState({

        total: subtotal + this.state.tax + this.state.tip + this.state.fee,

        loading: false,

      });

    }

};


查看完整回答
反對 回復 2023-05-25
  • 1 回答
  • 0 關注
  • 204 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號