当前位置: 首页 > 面试题库 >

在JavaScript中使用正好两位小数格式化数字

桂学
2023-03-14
问题内容

我有这行代码将我的数字四舍五入到小数点后两位。但是我得到这样的数字:10.8、2.4等。这些不是我对小数点后两位的想法,因此我如何改善以下内容?

Math.round(price*Math.pow(10,2))/Math.pow(10,2);

我想要数字10.80、2.40等。使用jQuery对我来说很好。


问题答案:

要使用定点表示法格式化数字,您可以简单地使用toFixed方法:

(10.8).toFixed(2); // "10.80"

var num = 2.4;
alert(num.toFixed(2)); // "2.40"

请注意,它toFixed()返回一个字符串。

重要说明 :请注意,toFixed不会在90%的时间内舍入,它会返回舍入后的值,但是在许多情况下,它不起作用。

例如:

2.005.toFixed(2) === "2.00"

现在,您可以使用Intl.NumberFormat构造函数。它是ECMAScript国际化API规范(ECMA402)的一部分。它具有很好的浏览器支持,甚至包括IE11,并且Node.js完全支持它。

const formatter = new Intl.NumberFormat('en-US', {

   minimumFractionDigits: 2,

   maximumFractionDigits: 2,

});



console.log(formatter.format(2.005)); // "2.01"

console.log(formatter.format(1.345)); // "1.35"

您也可以使用toLocaleString方法,该方法将在内部使用IntlAPI:

const format = (num, decimals) => num.toLocaleString('en-US', {

   minimumFractionDigits: 2,

   maximumFractionDigits: 2,

});





console.log(format(2.005)); // "2.01"

console.log(format(1.345)); // "1.35"

该API还为您提供了多种格式选项,例如千位分隔符,货币符号等。



 类似资料:
  • 问题内容: 我想知道如何在不舍入原始数字的情况下输出带两位小数的数字。 例如: 我已经尝试过: 问题答案: 您要使用命令。 https://dev.mysql.com/doc/refman/8.0/zh-TW/mathematical- functions.html#function_truncate

  • 问题内容: 我希望实数是例如12.92,而不是12.9241。有可能这样做吗? 问题答案: 在PHP中,尝试 :

  • 问题内容: 我正在打印一个我不知道其值的数字。在大多数情况下,该数字为整数或结尾为0.5。在某些情况下,该数字以.25或.75结尾,而极少数情况下该数字达到千分之一。我该如何具体检测到最后一种情况?现在,我的代码检测到一个整数(0个小数位),精确地为0.5(1个小数位),然后在所有其他情况下恢复为2个小数点,但是当我需要这样做时,我需要将其改为3。 问题答案: A 使用二进制(IEEE 754)表

  • 问题内容: 是否可以使用CSS格式化数字?即:小数位,小数点分隔符,千位分隔符等。 问题答案: 您可以使用。它也可以格式化为其他数字格式,例如拉丁文,阿拉伯文等。

  • 本文向大家介绍Flex中对表格中某列的值进行数字格式化保留两位小数,包括了Flex中对表格中某列的值进行数字格式化保留两位小数的使用技巧和注意事项,需要的朋友参考一下 1、问题背景 一般的,表格中展示的比率,对比率的处理是:保留两位小数,并向上保留 2、实现实例 3、实现结果

  • 问题内容: 我正在尝试将双精度数格式化为精确到小数点后2位(如果有分数),然后使用DecimalFormat将其截断 因此,我想取得下一个结果: 变体#1 变体#2 有什么想法可以选择我的情况吗? 问题答案: 我达到的唯一解决方案是使用 if语句在这里提到 测试中 如果有人知道更优雅的方式,请分享!