仅在必要时如何在 JavaScript 中舍入数字

我想在 JavaScript 中舍入一个数字,2 decimal但只在必要时舍入到地方。

例如4.5成为4.503.331成为3.331

我试过使用,Math.round(number / 100) * 100但是当数字是4.5它给我的时候4.5,我希望它是4.50.

我试过使用.toFixed(2),但是当数字是3.331它时它会修复它3.33

任何帮助深表感谢。


HUWWW
浏览 189回答 3
3回答

幕布斯6054654

您可以检查固定值是否更改并选择格式类型。function format(f) {    return f === +f.toFixed(2)        ? f.toFixed(2)        : f.toString()}console.log([4.5, 3.331, 3].map(format));

慕无忌1623718

使用正则表达式检查点后的数字。如果小于 2,则使用toFixed(2),否则什么都不做。function f(n) {    let diff = Number(n) - Math.floor(Number(n));    return /\.[0-9]{2,}/.test(diff.toString()) ? n : n.toFixed(2)}const nums = [3.331, 2.5, 3].map(f)console.log(nums)

湖上湖

这看起来像一个字符串格式而不是一个舍入问题:var value = 4 + '.';var [num, dec] = value.split('.');if (dec.length < 2) {&nbsp; dec = (dec + '00').substring(0, 2);}console.log(`${num}.${dec}`);可运行的片段:function format(value) {&nbsp; var [num, decimal] = (value + '.').split('.');&nbsp;&nbsp;&nbsp; if (decimal.length < 2) {&nbsp; &nbsp; decimal = (decimal + '00').substring(0, 2);&nbsp; }&nbsp; return `${num}.${decimal}`;&nbsp;&nbsp;}console.log([4, 4.5, 3.331].map(format));4 -> 4.004.5 -> 4.503.331 -> 3.331
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript