[JQUERY] C 번호와 유사한 자바 스크립트의 형식 번호
JQUERYC 번호와 유사한 자바 스크립트의 형식 번호
해결법
-
1.당신은 아마 JQuery와 NumberFormatter는 플러그인을 살펴해야한다 :
당신은 아마 JQuery와 NumberFormatter는 플러그인을 살펴해야한다 :
JQuery와 수 포맷터
그리고이 질문 :
형식 번호에 자바 스크립트 쉬운 방법
-
2.일반적으로
일반적으로
에서 jQuery를
-
3.예, 예를 들어 제대로 자바 스크립트 형식 번호에 대한 방법은 확실히있다 :
예, 예를 들어 제대로 자바 스크립트 형식 번호에 대한 방법은 확실히있다 :
var val=2489.8237 val.toFixed(3) //returns 2489.824 (round up) val.toFixed(2) //returns 2489.82 val.toFixed(7) //returns 2489.8237000 (padding)
variablename.toFixed의 사용으로.
그리고 또 다른 기능에서는 toPrecision있다 (). 자세한 내용을 위해 당신은 또한 방문 할 수 있습니다
http://raovishal.blogspot.com/2012/01/number-format-in-javascript.html
-
4.여기서 문자열 포맷 정수 쉼표를 추가하는 간단한 JS 함수이다. 그것은 정수 또는 10 진수 번호를 처리합니다. 당신은 그것을 숫자 나 문자열 중 하나를 전달할 수 있습니다. 그것은 분명히 문자열을 반환합니다.
여기서 문자열 포맷 정수 쉼표를 추가하는 간단한 JS 함수이다. 그것은 정수 또는 10 진수 번호를 처리합니다. 당신은 그것을 숫자 나 문자열 중 하나를 전달할 수 있습니다. 그것은 분명히 문자열을 반환합니다.
function addCommas(str) { var parts = (str + "").split("."), main = parts[0], len = main.length, output = "", first = main.charAt(0), i; if (first === '-') { main = main.slice(1); len = main.length; } else { first = ""; } i = len - 1; while(i >= 0) { output = main.charAt(i) + output; if ((len - i) % 3 === 0 && i > 0) { output = "," + output; } --i; } // put sign back output = first + output; // put decimal part back if (parts.length > 1) { output += "." + parts[1]; } return output; }
다음은 테스트 케이스의 집합입니다 : http://jsfiddle.net/jfriend00/6y57j/
http://jsfiddle.net/jfriend00/sMnjT/ : 당신은이 이전 jsFiddle에서 사용되는 것을 볼 수 있습니다. 당신은 "자바 스크립트 추가 쉼표"에 대한 간단한 구글 검색으로 너무 진수를 처리하는 기능을 찾을 수 있습니다.
숫자를 문자열로 변환하는 여러 가지 방법을 수행 할 수 있습니다. 가장 쉬운 문자열에 추가 단지입니다 :
var myNumber = 3; var myStr = "" + myNumber; // "3"
당신의 jsFiddle의 컨텍스트 내에서이 줄을 변경하여 카운터에 쉼표를 얻을 것입니다 :
jTarget.text(current);
이에:
jTarget.text(addCommas(current));
당신이 여기서 일하는 볼 수 있습니다 http://jsfiddle.net/jfriend00/CbjSX/
-
5.나는 간단한 함수를 (또 다른 jQuery를 필요 플러그인이 없습니다!) 숫자로 시작하는 숫자가 아닌 경우 변환은 소수에 숫자가 문자열이나 빈 문자열을 분리 썼다 :
나는 간단한 함수를 (또 다른 jQuery를 필요 플러그인이 없습니다!) 숫자로 시작하는 숫자가 아닌 경우 변환은 소수에 숫자가 문자열이나 빈 문자열을 분리 썼다 :
function format(x) { return isNaN(x)?"":x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); }
포맷 (578,999); 578999 결과
포맷 (10); 10 결과
대신 쉼표의 소수점을하려면 단순히 소수점와 코드에 쉼표를 교체합니다.
코멘트 중 하나는 정확하게 당신이 아니라 포인트를 떠 작동 할 수있는 몇 가지 작은 adaptions와 정수에 대해이 단지 작품을 말했다 :
function format(x) { if(isNaN(x))return ""; n= x.toString().split('.'); return n[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",")+(n.length>1?"."+n[1]:""); }
-
6.여기에 몇 가지 솔루션은 모든 당신이 사본을 원하는 테스트에 붙여 넣으면 테스트 스위트, 테스트 스위트 및 벤치 마크 포함,이 요점을 시도 전달합니다.
여기에 몇 가지 솔루션은 모든 당신이 사본을 원하는 테스트에 붙여 넣으면 테스트 스위트, 테스트 스위트 및 벤치 마크 포함,이 요점을 시도 전달합니다.
https://stackoverflow.com/a/14428340/1877620에 대한 자료 만 수정에는 소수점이없는 경우.
if (typeof Number.prototype.format === 'undefined') { Number.prototype.format = function (precision) { if (!isFinite(this)) { return this.toString(); } var a = this.toFixed(precision).split('.'); a[0] = a[0].replace(/\d(?=(\d{3})+$)/g, '$&,'); return a.join('.'); } }
if (typeof Number.prototype.format1 === 'undefined') { Number.prototype.format1 = function (precision) { if (!isFinite(this)) { return this.toString(); } var a = this.toFixed(precision).split('.'), // skip the '-' sign head = Number(this < 0); // skip the digits that's before the first thousands separator head += (a[0].length - head) % 3 || 3; a[0] = a[0].slice(0, head) + a[0].slice(head).replace(/\d{3}/g, ',$&'); return a.join('.'); }; }
if (typeof Number.prototype.format2 === 'undefined') { Number.prototype.format2 = function (precision) { if (!isFinite(this)) { return this.toString(); } var a = this.toFixed(precision).split('.'); a[0] = a[0] .split('').reverse().join('') .replace(/\d{3}(?=\d)/g, '$&,') .split('').reverse().join(''); return a.join('.'); }; }
if (typeof Number.prototype.format3 === 'undefined') { Number.prototype.format3 = function (precision) { if (!isFinite(this)) { return this.toString(); } var a = this.toFixed(precision).split(''); a.push('.'); var i = a.indexOf('.') - 3; while (i > 0 && a[i-1] !== '-') { a.splice(i, 0, ','); i -= 3; } a.pop(); return a.join(''); }; }
console.log('======== Demo ========') var n = 0; for (var i=1; i<20; i++) { n = (n * 10) + (i % 10)/100; console.log(n.format(2), (-n).format(2)); }
우리는 사용자 정의 천 단위 구분 기호 또는 소수 구분 기호를 원하는 경우에, 사용) (대체 :
123456.78.format(2).replace(',', ' ').replace('.', ' ');
function assertEqual(a, b) { if (a !== b) { throw a + ' !== ' + b; } } function test(format_function) { console.log(format_function); assertEqual('NaN', format_function.call(NaN, 0)) assertEqual('Infinity', format_function.call(Infinity, 0)) assertEqual('-Infinity', format_function.call(-Infinity, 0)) assertEqual('0', format_function.call(0, 0)) assertEqual('0.00', format_function.call(0, 2)) assertEqual('1', format_function.call(1, 0)) assertEqual('-1', format_function.call(-1, 0)) // decimal padding assertEqual('1.00', format_function.call(1, 2)) assertEqual('-1.00', format_function.call(-1, 2)) // decimal rounding assertEqual('0.12', format_function.call(0.123456, 2)) assertEqual('0.1235', format_function.call(0.123456, 4)) assertEqual('-0.12', format_function.call(-0.123456, 2)) assertEqual('-0.1235', format_function.call(-0.123456, 4)) // thousands separator assertEqual('1,234', format_function.call(1234.123456, 0)) assertEqual('12,345', format_function.call(12345.123456, 0)) assertEqual('123,456', format_function.call(123456.123456, 0)) assertEqual('1,234,567', format_function.call(1234567.123456, 0)) assertEqual('12,345,678', format_function.call(12345678.123456, 0)) assertEqual('123,456,789', format_function.call(123456789.123456, 0)) assertEqual('-1,234', format_function.call(-1234.123456, 0)) assertEqual('-12,345', format_function.call(-12345.123456, 0)) assertEqual('-123,456', format_function.call(-123456.123456, 0)) assertEqual('-1,234,567', format_function.call(-1234567.123456, 0)) assertEqual('-12,345,678', format_function.call(-12345678.123456, 0)) assertEqual('-123,456,789', format_function.call(-123456789.123456, 0)) // thousands separator and decimal assertEqual('1,234.12', format_function.call(1234.123456, 2)) assertEqual('12,345.12', format_function.call(12345.123456, 2)) assertEqual('123,456.12', format_function.call(123456.123456, 2)) assertEqual('1,234,567.12', format_function.call(1234567.123456, 2)) assertEqual('12,345,678.12', format_function.call(12345678.123456, 2)) assertEqual('123,456,789.12', format_function.call(123456789.123456, 2)) assertEqual('-1,234.12', format_function.call(-1234.123456, 2)) assertEqual('-12,345.12', format_function.call(-12345.123456, 2)) assertEqual('-123,456.12', format_function.call(-123456.123456, 2)) assertEqual('-1,234,567.12', format_function.call(-1234567.123456, 2)) assertEqual('-12,345,678.12', format_function.call(-12345678.123456, 2)) assertEqual('-123,456,789.12', format_function.call(-123456789.123456, 2)) } console.log('======== Testing ========'); test(Number.prototype.format); test(Number.prototype.format1); test(Number.prototype.format2); test(Number.prototype.format3);
function benchmark(f) { var start = new Date().getTime(); f(); return new Date().getTime() - start; } function benchmark_format(f) { console.log(f); time = benchmark(function () { for (var i = 0; i < 100000; i++) { f.call(123456789, 0); f.call(123456789, 2); } }); console.log(time.format(0) + 'ms'); } async = []; function next() { setTimeout(function () { f = async.shift(); f && f(); next(); }, 10); } console.log('======== Benchmark ========'); async.push(function () { benchmark_format(Number.prototype.format); }); async.push(function () { benchmark_format(Number.prototype.format1); }); async.push(function () { benchmark_format(Number.prototype.format2); }); async.push(function () { benchmark_format(Number.prototype.format3); }); next();
-
7.당신이 jQuery를 사용하지 않으려면, Numeral.js를 살펴
당신이 jQuery를 사용하지 않으려면, Numeral.js를 살펴
-
8.첫째, JS에서 문자열로 정수를 변환하는 것은 정말 간단하다 :
첫째, JS에서 문자열로 정수를 변환하는 것은 정말 간단하다 :
// Start off with a number var number = 42; // Convert into a string by appending an empty (or whatever you like as a string) to it var string = 42+''; // No extra conversion is needed, even though you could actually do var alsoString = number.toString();
당신이 문자열로 숫자를 가지고는 정수로 전환 될하려는 경우, 당신은 수레에 대한 정수와에서는 parseFloat (문자열)의에서는 parseInt (문자열)를 사용합니다. 이 함수는 모두 다음 원하는 정수 / 부동 소수점을 반환합니다. 예:
// Start off with a float as a string var stringFloat = '3.14'; // And an int as a string var stringInt = '42'; // typeof stringInt would give you 'string' // Get the real float from the string var realFloat = parseFloat(someFloat); // Same for the int var realInt = parseInt(stringInt); // but typeof realInt will now give you 'number'
무엇 정확히 등 추가하려고하는 것은, 귀하의 질문에서 나에게 확실하지 않다.
-
9.http://code.google.com/p/javascript-number-formatter/ :
http://code.google.com/p/javascript-number-formatter/ :
최신 정보
그리고 토마스 그러나 여기에 한 줄 솔루션을 말한다 :
(666.0).toLocaleString() numObj.toLocaleString([locales [, options]])
이는 ECMA-262 5.1 판에 설명 :
와 브라우저의 향후 버전에서 작동합니다 ...
-
10.예를 들면 :
예를 들면 :
var flt = '5.99'; var nt = '6'; var rflt = parseFloat(flt); var rnt = parseInt(nt);
-
11.jQuery를 사용하여.
jQuery를 사용하여.
$(document).ready(function() { //Only number and one dot function onlyDecimal(element, decimals) { $(element).keypress(function(event) { num = $(this).val() ; num = isNaN(num) || num === '' || num === null ? 0.00 : num ; if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) { event.preventDefault(); } if($(this).val() == parseFloat(num).toFixed(decimals)) { event.preventDefault(); } }); } onlyDecimal("#TextBox1", 3) ; });
-
12.쉼표 후이 개 번호 진수를 얻으려면, 당신은 사용할 수 있습니다 :
쉼표 후이 개 번호 진수를 얻으려면, 당신은 사용할 수 있습니다 :
function nformat(a) { var b = parseInt(parseFloat(a)*100)/100; return b.toFixed(2); }
-
13.여기에 또 다른 버전입니다 :
여기에 또 다른 버전입니다 :
$.fn.digits = function () { return this.each(function () { var value = $(this).text(); var decimal = ""; if (value) { var pos = value.indexOf("."); if (pos >= 0) { decimal = value.substring(pos); value = value.substring(0, pos); } if (value) { value = value.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); if (!String.isNullOrEmpty(decimal)) value = (value + decimal); $(this).text(value); } } else { value = $(this).val() if (value) { var pos = value.indexOf("."); if (pos >= 0) { decimal = value.substring(pos); value = value.substring(0, pos); } if (value) { value = value.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); if (!String.isNullOrEmpty(decimal)) value = (value + decimal); $(this).val(value); } } } }) };
-
14.나는 간단한 함수를 만들어, 아마도 누군가가 그것을 사용할 수 있습니다
나는 간단한 함수를 만들어, 아마도 누군가가 그것을 사용할 수 있습니다
function secsToTime(secs){ function format(number){ if(number===0){ return '00'; }else { if (number < 10) { return '0' + number } else{ return ''+number; } } } var minutes = Math.floor(secs/60)%60; var hours = Math.floor(secs/(60*60))%24; var days = Math.floor(secs/(60*60*24)); var seconds = Math.floor(secs)%60; return (days>0? days+"d " : "")+format(hours)+':'+format(minutes)+':'+format(seconds); }
이것은 다음 출력을 생성 할 수있다 :
-
15.경우 당신이보기에 대해이 아니라 계산을 위해 당신이 사용할 수있는 형식 번호로 원하는
경우 당신이보기에 대해이 아니라 계산을 위해 당신이 사용할 수있는 형식 번호로 원하는
function numberFormat( number ){ var digitCount = (number+"").length; var formatedNumber = number+""; var ind = digitCount%3 || 3; var temparr = formatedNumber.split(''); if( digitCount > 3 && digitCount <= 6 ){ temparr.splice(ind,0,','); formatedNumber = temparr.join(''); }else if (digitCount >= 7 && digitCount <= 15) { var temparr2 = temparr.slice(0, ind); temparr2.push(','); temparr2.push(temparr[ind]); temparr2.push(temparr[ind + 1]); // temparr2.push( temparr[ind + 2] ); if (digitCount >= 7 && digitCount <= 9) { temparr2.push(" million"); } else if (digitCount >= 10 && digitCount <= 12) { temparr2.push(" billion"); } else if (digitCount >= 13 && digitCount <= 15) { temparr2.push(" trillion"); } formatedNumber = temparr2.join(''); } return formatedNumber; }
입력 : {정수} 번호
출력 : {문자열} 번호
22,870 => 22,870 수 있다면
22,87 만 => 수 2287xxxx (x는 무엇이든 할 수있다) 경우
22,87 억 => 만약 번호 2287xxxxxxx
22,87 조 => 만약 번호 2287xxxxxxxxxx
당신은 아이디어를 얻을
-
16.더 jfriend00의 대답에 난 다음에 그 / 그녀의 대답을 확장했다 (I는 의견에 포인트가 부족하지 말자)
더 jfriend00의 대답에 난 다음에 그 / 그녀의 대답을 확장했다 (I는 의견에 포인트가 부족하지 말자)
로그 함수 (인수) { VAR STR = ""; 경우 (나는 <에서 arguments.length; VAR 난 0 = I ++) { 만약 {(인수 [I] === "개체"대해서 typeof) STR + = JSON.stringify (인수 [I]); } 다른 { STR + = 인자 [I]; } } VAR DIV = document.createElement ( "DIV"); div.innerHTML = STR; document.body.appendChild (DIV); } Number.prototype.addCommas = 함수 (STR) { 경우 (STR === 정의) { STR이 =; } VAR 부품 = (STR + "") .split를 ( "."), 주요 부품 = [0], LEN = main.length, 출력 = "" 제 main.charAt = (0) 나는; {- ( ''=== 첫째)의 경우 메인 = main.slice (1); LEN = main.length; } 다른 { 제 = ""; } 난 렌 = - 1; 반면 (I> = 0) { 출력 = main.charAt (I) + 출력; 경우 (LEN (- Ⅰ) 3 % === 0 && I> 0) { 출력 = ""+ 출력; } --나는; } // 넣어 기호 다시 출력은 제 + 출력 =; // 넣어 진 부분 다시 경우 (parts.length> 1) { 출력 + = "." 부품 + [1]; } 출력을 리턴; } VAR의 테스트 케이스 = 1, 12, 123, -1234, 12345, 123456, -1234567, 12345678, 123456789 -1.1, 12.1, 123.1, 1234.1, -12345.1, -123456.1, -1234567.1, 12345678.1, 123456789.1 ]; 경우 (나는
-
17.나는 일반적인 경우에 대한 로케일 numbro 기반의 서식 및 번호-format.js를 제안 할 수 있습니다. 사용 케이스에 따라 두 가지의 조합이 도움이 될 수 있습니다.
나는 일반적인 경우에 대한 로케일 numbro 기반의 서식 및 번호-format.js를 제안 할 수 있습니다. 사용 케이스에 따라 두 가지의 조합이 도움이 될 수 있습니다.
-
18.다음과 같은 방법으로 작업을 수행 할 수 있습니다 당신은 단지 수를 포맷하지 않습니다하지만 당신은 또한 많은 소수점 자리가 표시하는 방법을 매개 변수로 전달할 수 있도록 사용자 정의 진수와 마일 구분을 설정합니다.
다음과 같은 방법으로 작업을 수행 할 수 있습니다 당신은 단지 수를 포맷하지 않습니다하지만 당신은 또한 많은 소수점 자리가 표시하는 방법을 매개 변수로 전달할 수 있도록 사용자 정의 진수와 마일 구분을 설정합니다.
function format(number, decimals = 2, decimalSeparator = '.', thousandsSeparator = ',') { const roundedNumber = number.toFixed(decimals); let integerPart = '', fractionalPart = ''; if (decimals == 0) { integerPart = roundedNumber; decimalSeparator = ''; } else { let numberParts = roundedNumber.split('.'); integerPart = numberParts[0]; fractionalPart = numberParts[1]; } integerPart = integerPart.replace(/(\d)(?=(\d{3})+(?!\d))/g, `$1${thousandsSeparator}`); return `${integerPart}${decimalSeparator}${fractionalPart}`; }
사용하다:
let min = 1556454.0001; let max = 15556982.9999; console.time('number format'); for (let i = 0; i < 15000; i++) { let randomNumber = Math.random() * (max - min) + min; let formated = format(randomNumber, 4, ',', '.'); // formated number console.debug('number: ', randomNumber, 'formated: ', formated); } console.timeEnd('number format');
from https://stackoverflow.com/questions/1068284/format-numbers-in-javascript-similar-to-c-sharp by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 두 $ .post 요청 요청 .post other.Second $이 실행되지 않습니다 후 하나를 (0) | 2020.10.04 |
---|---|
[JQUERY] Fancybox 링크 라이트 박스에 표시되지 않습니다 - 나는 무엇을 놓치고? (0) | 2020.10.04 |
[JQUERY] CSS 속성은 jQuery를 사용하여 변경할 때 이벤트 감지 (0) | 2020.10.03 |
[JQUERY] 트리거 이벤트 때 특정 요소에 대한 사용자 스크롤 - jQuery로 (0) | 2020.10.03 |
[JQUERY] 값으로 JSON을 정렬 (0) | 2020.10.03 |