JS - 格式数字小数点为 2 不舍入



我会用小数点后 2 位格式化一个数字而不四舍五入。所以我排除了toFixed()函数。

我试过这种方式

a = 1,809999
b = 27,94989
a = Math.floor(a * 100) / 100; --> 1,8
b = Math.floor(b * 100) / 100; --> 27,94
OR
a = Number(a.toString().match(/^d+(?:.d{0,2})?/)); --> 1,8
b = Number(b.toString().match(/^d+(?:.d{0,2})?/)); --> 27,94

不幸的是,a 的第二个小数点为零,并且被删除了,我该怎么做才能保留它并拥有 a = 1.80?谢谢<</p>

div class="one_answers">
(Math.floor(a * 100) / 100).toFixed(2);

与固定(2) !

JSFIDDLE 演示

你可以

这样尝试:

a= a.toString().slice(0, (a.indexOf("."))+3); 

JSFIDDLE 演示

对数字进行舍入是关于改变其值,并且应该通过数学运算(Math.floor,Math.ceil,Math.round等)来完成。

格式化数字,是关于如何向人类用户显示数字(如日期格式)。

Javascript没有提供可接受的本机工具来执行数字格式化。

总是可以使用舍入来使javascript以你想要的方式打印一个数字,但你最终会写很多(可能是错误的)代码。

我建议使用库来格式化您的数字http://numeraljs.com/

numeral(number).format('0.00');
只需要

使用 toFixed() 并像 2 一样传递数字,然后它显示在 . 两个十进制像贝洛

a = 1,809999
b = 27,94989
a = Math.floor(a * 100) / 100; 
b = Math.floor(b * 100) / 100; 
$(".testa").text(a.toFixed(2)); //see here.
$(".testb").text(b.toFixed(2)); //see here.

目录 :

<div class="testa"></div>
<br>
    <div class="testb"></div>

我希望这对你有所帮助。 另请参阅此JSFIDDLE链接 http://jsfiddle.net/RGerb/394/

myFunction(value: number){
let x = value + ''; 
  var a =  x.lastIndexOf('.')>=0?parseFloat(x.substr(0,x.lastIndexOf('.')+(3))):value;
  var am = a.toFixed(2)
  console.log("Output: " + am);
  return am;

}

<button (click)="myFunction(656565.9668985)">My Function</button>
Output: 656565.96

最新更新