📜  JavaScript 数字原型属性

📅  最后修改于: 2022-05-13 01:56:23.883000             🧑  作者: Mango

JavaScript 数字原型属性

JavaScript 中的Number对象用于处理数字,无论是负数还是正数。 JavaScript Number 类型表示双精度(小数值)类型的数字。像 98 这样的数字字面量不是整数值,而是浮点值。它保持小数点后 17 位的精度。 1.8 * 10^308是它可以容纳的最大值,超出此值的任何数字都将替换为称为Infinity的常数。

Number.prototype指的是Number()对象,而不是单个数字对象。原型属性将以下实例方法添加到数字对象。

  1. 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"
    
  2. 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"
    
  3. 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"
    
  4. 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"
    
  5. 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"
    
  6. 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"
    "??? ???"