将数字格式化为最后两位小数

我正在尝试将JS中的数字格式设置为最后两位小数。

例如10100变为101.00-606000变为6,060.00-7600变为76.00,依此类推。

I have tried num.toFixed(2) but that was not of help. I also tried Number(10100).toLocaleString("es-ES", {minimumFractionDigits: 0}) but I end up with 10.100 so it seems off by one decimal.

评论
xid
xid

所以

num.toFixed(2) 

它的格式如何? 那应该是10.123-> 10.12

您应该做的是将数字除以100。

var number = 10100
number = number / 100

将是您所需要的。

点赞
评论
mut
mut

我将使用字符串的帮助来解决这个问题。

可以根据我们的要求轻松地操作字符串,然后可以将其转换回数字。因此,解决方案是这样的

  1. 将数字转换为字符串
  2. 处理字符串以在最后两个字符前添加小数
  3. 将字符串转换回数字
const formatNumberToLastTwoDecimal = (number) => {
  // Convert the number to String
  const inputNumAsStr = number.toString();
  // Manipulate the string and add decimal before two char
  const updatedStr = `${inputNumAsStr.slice(0, -2)}.${inputNumAsStr.slice(-2)}`;
  // Return by converting the string to number again
  // Fix by 2 to stop parseFloat() from stripping zeroes to right of decimal
  return new Number(parseFloat(updatedStr)).toFixed(2);
}

console.log(formatNumberToLastTwoDecimal(606000));
点赞
评论
Bill
Bill

最简化的方式:

output = parseFloat(number/100).toFixed(2)

以及复杂的方式:

var c = 7383884
a = c.toString()
var output = parseFloat([a.slice(0, -2), ".",a.slice(-2)].join(''))

document.write(output)
点赞
评论