admin管理员组文章数量:1136390
Title very much sums up my needs.
123456789 => 123,456,789
12345 => 12,345
What's the best way to get this conversion ? Don't suggest currency pipe in Angular-2 as I don't need $ or currency symbol to be prepend to my output.
Title very much sums up my needs.
123456789 => 123,456,789
12345 => 12,345
What's the best way to get this conversion ? Don't suggest currency pipe in Angular-2 as I don't need $ or currency symbol to be prepend to my output.
Share Improve this question edited Jul 5, 2017 at 20:05 CodeWarrior 2,8513 gold badges19 silver badges18 bronze badges asked Jul 5, 2017 at 14:38 BeingSumanBeingSuman 3,3237 gold badges32 silver badges52 bronze badges 2- 1 Possible duplicate of How to print a number with commas as thousands separators in JavaScript – gforce301 Commented Jul 5, 2017 at 14:41
- 1 @gforce301 It's a different enviroment, the op wanted a solution for angular2 too, as CodeWarrior answered with a pipe solution. – Sebastian Giro Commented Jul 5, 2017 at 15:16
4 Answers
Reset to default 132Use DecimalPipe like this
{{attr | number}}
Working Plunker
Documentation available at https://angular.io/api/common/DecimalPipe
function printNo() {
document.getElementById('text').innerHTML =
Number(1234355).toLocaleString('en-GB');
}
<!DOCTYPE html>
<html>
<head></head>
<body onload="printNo()">
<h1 id="text"></h1>
</body>
</html>
Reference link
Without using pipes, a simple way to answer your question with javascript:
var str = "The quick brown fox jumps over the lazy dogs.".replace(/(.{2})/g,"$1,");
And this will output Th,e ,qu,ic,k ,br,ow,n ,fo,x ,ju,mp,s ,ov,er, t,he, l,az,y ,do,gs,.
But I think you formulated your question bad, so, If you want to parse numbers, you should use this function:
function numberWithCommas(x) {
var parts = x.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
So
var num = numberWithCommas(1234567);
console.log(num);
This will output 1,234,567
CodeWarrior's answer on pipes works great for front-end display. Recommended if your number is easy to isolate and pipe in your HTML. Sometimes though, it is much more convenient to get the formatted number in Typescript/Javascript before assembling something for display.
For Typescript in Angular, formatNumber()
from @angular/common will comma separate numbers. With num
as a string of "12345":
formatNumber(Number(num), 'en-US', '1.0-0')
will produce "12,345" as another string. Obviously different locales will format the number differently ('en-US' uses ',' and '.'), and the third option of digitsInfo can define whether your want decimals or not ('1.0-0' suggests one digit before '.' and zero after).
You will need to import formatNumber with
import {formatNumber} from '@angular/common';
Documentation at https://angular.io/api/common/formatNumber
本文标签: javascriptAngular Formatting numbers with commasStack Overflow
版权声明:本文标题:javascript - Angular: Formatting numbers with commas - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736963750a1957831.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论