2017-09-06 59 views
0

我想解析JavaScript中的數字,精確到小數點後兩位,表示各種輸入值。例如:
解析數字精確到小數點後兩位,輸出類型爲數字或浮點數在javascript中

input = 631, required output = 631.00, type = float 
input = 631.3, required output = 631.30, type = float 
input = 631.333, required output = 631.33, type = float 

我試過如下選項

input = 631 
output = parseFloat(input).toFixed(2) // '631.00' 

此類型來爲一個字符串,它不是必需的。

input = 631.3 
output = parseFloat(input) // 631.3 

我想這是準確的2位小數

我也試過num.toPrecision(totalDigits),但它需要被需要的總數字。

API調用

curl -X POST \ 
    https://www.wepay.in.th/client_api.php \ 
    -H 'cache-control: no-cache' \ 
    -H 'content-type: application/x-www-form-urlencoded' \ 
    -d 'username=xxxxx&password=xxxxxx&json=true&resp_url=https%3A%2F%2Fapi.witpay.co.th%2Fproccesswepay&pay_to_ref3=&pay_to_barcode1=&type=mtopup&pay_to_company=12CALL&pay_to_ref2=&pay_to_ref1=0929418926&dest_ref=34&pay_to_amount=10.00' 

在API調用的NodeJS

const params = { 
    dest_ref: client_ref, 
    pay_to_company: serviceCode, 
    pay_to_amount: parseFloat(amount).toFixed(2), 
    pay_to_ref1: payToRef1, 
} 

request({ 
    baseUrl, 
    url: '/client_api.php', // URL to hit 
    method: 'POST', 
    form: params, 
    headers: [{ 
    name: 'content-type', 
    value: 'application/x-www-form-urlencoded', 
    }], 
}, (error, response, body) => { 
    // handle response and error 
}) 

PS:這是從第三方API要求的格式,所以不能改變它。

+0

你想在哪裏使用它,因爲631.3 == 631.30 – marvel308

+0

使用字符串是唯一可能的方法。浮點只有必要的小數(即最後沒有零),整數根本沒有小數。 – str

+0

我正在向第三方進行API調用,如果我說的金額等於631.3或'631.30',它就會失敗,並顯示錯誤消息「631.30」。 –

回答

0

parseFloat(輸入).toFixed(2)是一個完美的辦法,你總是會得到的浮點數爲字符串的數據類型,因爲JavaScript只支持下面提到的基本數據類型:

  1. 布爾
  2. 未定義
  3. S飾NG
  4. 符號(新ECMAScript中6)

浮點數可以像你說的,他們不會有任何用處的,因爲當你嘗試將其轉換爲數字表示爲類型,但它會給你與parseFloat給出的相同的響應。

相關問題