簡體   English   中英

為什么.toFixed(2)在這種情況下不起作用

[英]Why the .toFixed(2) is not working in this case

我需要用兩個十進制格式顯示值。

當顯示值時,為什么在這種情況下toFixed函數不起作用

我在瀏覽器控制台下收到以下錯誤

未捕獲的TypeError:tax_value.toFixed不是函數

這是我的代碼

var orderjson = 
    {
        "display": {
            "ServiceCharge": "1",
            "ServiceTax": "2",
            "order": [
                "ServiceCharge",
                "ServiceTax",
                "VAT",
                "DISCOUNT"

            ],
            "VAT": "3",
            "OTH1": "4",
            "DISCOUNT": "5"
        }
    }


var orderOfDisplay = orderjson.display.order;

var ServiceCharge = orderjson.display.ServiceCharge;
var ServiceTax = orderjson.display.ServiceTax;
var VAT = orderjson.display.VAT;
var OTH1 = orderjson.display.OTH1;
var DISCOUNT = orderjson.display.DISCOUNT;

var htmldata =  '';

for(var i=0;i<orderOfDisplay.length;i++)
{
    var tax_value = orderjson.display[orderOfDisplay[i]];
    tax_value = tax_value.toFixed(2);
     htmldata+= '<tr><td align="right" valign="middle" width="50%">'+orderOfDisplay[i]+'</td> \
    <td align="right" valign="middle" width="50%">Rs. '+tax_value+'</td> \
    </tr>';


}

$("#tableid").append(htmldata);

http://jsfiddle.net/2kbet2hL/9/

在這種情況下,有人可以讓我知道如何顯示兩位小數嗎?

字符串沒有toFixed方法,當您調用它時, tax_value仍然是字符串。

出於某種原因,您的JSON數據將所有數字編碼為字符串( "3"3 )。 這不是真的正確,因此您應該使服務僅返回簡單數字。

如果需要強制將字符串變成數字,則應使用parseIntparseFloat 您的代碼將更改為:

tax_value = parseFloat(tax_value).toFixed(2);

在您當前的代碼中,在toFixed行之前使用typeof運算符將顯示tax_value類型。 在您的示例中,它顯示"string" (和typeof "".toFixed === 'undefined' ,證明該方法不存在)。

請參閱此內容,我已將字符串值更改為數字

var orderjson = 
    {
        "display": {
            "ServiceCharge": 1,
            "ServiceTax": 2,
            "order": [
                "ServiceCharge",
                "ServiceTax",
                "VAT",
                "DISCOUNT"

            ],
            "VAT": 3,
            "OTH1": 4,
            "DISCOUNT": 5
        }
    }

Js Fiddle:

http://jsfiddle.net/2kbet2hL/10/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM