JavaScript 数字原型属性
JavaScript 中的Number对象用于处理数字,无论是负数还是正数。 JavaScript Number 类型表示双精度(小数值)类型的数字。像 98 这样的数字字面量不是整数值,而是浮点值。它保持小数点后 17 位的精度。 1.8 * 10^308是它可以容纳的最大值,超出此值的任何数字都将替换为称为Infinity的常数。
Number.prototype指的是Number()对象,而不是单个数字对象。原型属性将以下实例方法添加到数字对象。
- Number.prototype.toPrecision(precision_value):它返回一个字符串,该字符串表示以指数表示法或定点表示法表示的精度。 precision_value参数指定需要表示的数字的位数。参数的值范围从0 到 20 ,如果不在给定范围内,则会产生称为RangeError的异常。
例子:
let num1 = 64.67890 let num2 = 0.000123 console.log(num1.toPrecision()) console.log(num1.toPrecision(3)) console.log(num1.toPrecision(1)) console.log(num2.toPrecision()) console.log(num2.toPrecision(3)) console.log(num2.toPrecision(1)) console.log((100000.02).toPrecision(4))
输出:
"64.6789" "64.7" "6e+1" "0.000123" "0.000123" "0.0001" "1.000e+5"
Javascript
function test(x) { return Number.parseFloat(x).toPrecision(5); } console.log(test(4532.567)); console.log(test(0.00065)); console.log(test('4.44e+5')); console.log(test('geeksforgeeks'));
Javascript
let num1 = new Number(100) console.log(num1) console.log(typeof num1) let num2 = num1.valueOf() console.log(num2) console.log(typeof num2)
Javascript
function test(x) { return Number.parseFloat(x).toFixed(4); } console.log(test(56.7645)); console.log(test(0.56400)); console.log(test('geeksforgeeks'));
Javascript
function octa_test(c) { if (c < 256) { return Math.abs(c).toString(8); } return 0; } //Display octal of 233 console.log(octa_test(233)); //Display octal of 65 console.log(octa_test('65'));
Javascript
function test(x, f) { return Number.parseFloat(x).toExponential(f); } console.log(test(100000, 3)); console.log(test('100000')); console.log(test('geeksforgeeks'));
Javascript
function test(x){ return x.toLocaleString('de-DE'); //German } function test2(x){ return x.toLocaleString('ar-EG'); //Arabic } console.log(test(1765890.654)); console.log(test('1765890.654')); console.log(test(NaN)); console.log(test2(1765890.654)); console.log(test2('1765890.654')); console.log(test2(NaN));
输出:
"4532.6" "0.00065000" "4.4400e+5" "NaN"
Number.prototype.valueOf():返回指定对象的值。此方法由 JavaScript 在内部调用。
例子:
let num1 = new Number(105) console.log(num1) console.log(typeof num1) let num2 = num1.valueOf() console.log(num2) console.log(typeof num2)
输出:
105 "object" 105 "number"
例子:
Javascript
let num1 = new Number(100) console.log(num1) console.log(typeof num1) let num2 = num1.valueOf() console.log(num2) console.log(typeof num2)
输出:
100 "object" 100 "number"
Number.prototype.toFixed(num):以定点表示法表示数字。 num参数指定小数点后的位数。它可能支持很大范围的值。参数的值范围从0 到 100 ,如果不在给定范围内,则会产生一个称为RangeError的异常。如果在 Number 以外的对象上调用此方法,则会产生称为TypeError的异常。参数的默认值为零,数字对象可能会被四舍五入。
例子:
let num = 134567.8845 console.log(num.toFixed()) console.log(num.toFixed(1)) console.log(num.toFixed(7)) console.log((2.56e+10).toFixed(3)) console.log(9.88.toFixed(1))
输出:
"134568" "134567.9" "134567.8845000" "2560000000.000" "9.9"
例子:
Javascript
function test(x) { return Number.parseFloat(x).toFixed(4); } console.log(test(56.7645)); console.log(test(0.56400)); console.log(test('geeksforgeeks'));
输出:
"56.7645" "0.5640" "NaN"
Number.prototype.toString([base]):它返回一个字符串,表示指定基值中的数字。参数 base 指定范围在 2 到 36 之间的数字,以表示该特定基数中的数字。如果基值不在指定范围内,则会产生RangeError异常。如果未指定基数,则其默认值为 10。如果数字对象为负值,则它不表示其 2 的补码,而是保留符号并将其放在表示指定基数的数字之后。
例子:
let count = 50 console.log(count.toString(8)) console.log((12.2).toString(2)) console.log((12.2).toString()) console.log((343).toString(16)) console.log((-5).toString(2)) console.log((-0xff).toString(2))
输出:
"62" "1100.001100110011001100110011001100110011001100110011" "12.2" "157" "-101" "-11111111"
例子:
Javascript
function octa_test(c) { if (c < 256) { return Math.abs(c).toString(8); } return 0; } //Display octal of 233 console.log(octa_test(233)); //Display octal of 65 console.log(octa_test('65'));
输出:
"351" "101"
Number.prototype.toExponential(fraction_num):以指数形式表示数字。 frac_num参数指定小数点后的位数。参数的值范围从0 到 20 ,如果不在给定范围内,则会产生称为RangeError的异常。如果在 Number 以外的对象上调用此方法,则会产生称为TypeError的异常。如果未指定frac_num参数,则选择小数点后的位数,以便唯一表示该数字。
例子:
var num1 = 123.4567; var num2 = 10000; console.log(num1.toExponential()); console.log(num2.toExponential()); console.log(num1.toExponential(4)); console.log(num2.toExponential(4)); console.log(100 .toExponential());
输出:
"1.234567e+2" "1e+4" "1.2346e+2" "1.0000e+4" "1e+2"
例子:
Javascript
function test(x, f) { return Number.parseFloat(x).toExponential(f); } console.log(test(100000, 3)); console.log(test('100000')); console.log(test('geeksforgeeks'));
输出:
"1.000e+5" "1e+5" "NaN"
Number.prototype.toLocaleString([locales [, options]]):表示指定语言的数字。参数 locales 和 options 指定要使用其格式约定的语言,这两个参数都决定了函数的行为。
例子:
var number = 10000; console.log(number.toLocaleString()); // German uses comma as decimal separator // and period for thousands console.log(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' })); // India uses thousands/lakh/crore separators console.log(number.toLocaleString('en-IN', { maximumSignificantDigits: 3 }));
输出:
"10, 000" "10.000, 00 €" "10, 000"
例子:
Javascript
function test(x){ return x.toLocaleString('de-DE'); //German } function test2(x){ return x.toLocaleString('ar-EG'); //Arabic } console.log(test(1765890.654)); console.log(test('1765890.654')); console.log(test(NaN)); console.log(test2(1765890.654)); console.log(test2('1765890.654')); console.log(test2(NaN));
输出:
"1.765.890, 654" "1765890.654" "NaN" "?????????????" "1765890.654" "??? ???"