将数字精确到2位小数,输出类型为数字或浮点数为javascript

时间:2017-09-06 10:14:38

标签: javascript

我正在尝试用JavaScript解析一个数字,以确定所有类型输入值的2位小数 对于Eg。

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'

nodeJS中的API调用

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所需的格式,因此无法更改。

1 个答案:

答案 0 :(得分:0)

parseFloat(输入).toFixed(2)是一种完美的方法,您将始终将浮点数的数据类型视为字符串,因为javascript仅支持下面提到的原始数据类型:

  1. 布尔
  2. Null
  3. 未定义
  4. 字符串
  5. 符号(ECMAScript 6中的新内容)
  6. 浮点数可以表示为数字类型,但正如您所说,它们没有任何用处,因为当您尝试将它们转换为数字时,它将给出与的 parseFloat 即可。