diff --git a/snippets/toDecimalMark.md b/snippets/toDecimalMark.md new file mode 100644 index 000000000..79cea1840 --- /dev/null +++ b/snippets/toDecimalMark.md @@ -0,0 +1,17 @@ +### toDecimalMark + +Convert a float-point arithmetic to the [Decimal mark](https://en.wikipedia.org/wiki/Decimal_mark) form. + +Use `toString()` to convert the float `num` to a string, then use regex to separate every three characters of the integer part with a comma. + + ```js +const toDecimalMark = (num) => { + let cleanNum = num.toString().split('').filter(n => '0123456789.'.includes(n)).join('') + let wholeNum = cleanNum.split('.')[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",") + let decNum = `.${cleanNum.split('.')[1]}` + return wholeNum + decNum; +} +// toDecimalMark(12305030388.9087) //-> '12,305,030,388.9087' +// toDecimalMark(123.889087e2) //-> '12,388.9087' +// toDecimalMark('12305abc030388.9087') // -> '12,305,030,388.9087' +``` diff --git a/tag_database b/tag_database index bc9f671f3..8b6dd43af 100644 --- a/tag_database +++ b/tag_database @@ -123,3 +123,4 @@ without:array words:string zip:array zipObject:array +numberWithCommas:utility