首页 > 编程语言 >JavaScript Number研究03_实例方法_toExponential_toFixed_toPrecision_toString_valueOf_toLocaleString

JavaScript Number研究03_实例方法_toExponential_toFixed_toPrecision_toString_valueOf_toLocaleString

时间:2024-10-10 12:52:45浏览次数:3  
标签:03 toPrecision console log toExponential valueOf 数值 num toLocaleString

JavaScript Number研究03:实例方法——toExponential、toFixed、toPrecision、toString、valueOf、toLocaleString

在JavaScript中,Number对象不仅包含了许多有用的静态属性,还提供了一系列实例方法,帮助我们在不同场景下处理和转换数值。这些方法包括:

  • toExponential()
  • toFixed()
  • toPrecision()
  • toString()
  • valueOf()
  • toLocaleString()

本篇文章将详细介绍这些实例方法的用法和注意事项,以便在开发中更灵活地操作数值。


toExponential()

定义

toExponential()方法以指数表示法返回一个数值的字符串表示形式。可以指定小数点后的位数。

语法

numObj.toExponential([fractionDigits])
  • fractionDigits:可选。指定小数点后保留的位数。取值范围为0到100之间的整数(某些浏览器可能支持更大的范围)。

用途

当需要以科学计数法表示数值,或需要规范化数值的位数时,可以使用toExponential()方法。

示例

let num = 123456;

console.log(num.toExponential());       // "1.23456e+5"
console.log(num.toExponential(2));      // "1.23e+5"
console.log(num.toExponential(4));      // "1.2346e+5"

注意事项

  • 如果不指定fractionDigits,则根据数值的精度自动决定小数位数。
  • fractionDigits超出范围时可能会抛出RangeError,具体取决于浏览器实现。

toFixed()

定义

toFixed()方法按照指定的小数位数格式化数值,并以字符串形式返回。

语法

numObj.toFixed(digits)
  • digits:可选。小数点后的位数,范围为0到100,默认为0(某些浏览器可能支持更大的范围)。

用途

用于将数值格式化为指定小数位数的字符串表示,常用于货币和精确度要求较高的数值展示。

示例

let num = 123.456;

console.log(num.toFixed());     // "123"
console.log(num.toFixed(2));    // "123.46"
console.log(num.toFixed(4));    // "123.4560"

注意事项

  • toFixed()会进行四舍五入操作。
  • 超出范围的digits可能会抛出RangeError,具体取决于浏览器实现。

toPrecision()

定义

toPrecision()方法以指定的精度返回数值的字符串表示形式。

语法

numObj.toPrecision(precision)
  • precision:可选。指定有效数字的位数,范围为1到100(某些浏览器可能支持更大的范围)。

用途

用于以固定的有效数字位数表示数值,适用于需要控制数值整体精度的场合。

示例

let num = 123.456;

console.log(num.toPrecision());     // "123.456"
console.log(num.toPrecision(2));    // "1.2e+2"
console.log(num.toPrecision(4));    // "123.5"
console.log(num.toPrecision(6));    // "123.456"

注意事项

  • precision小于整数位数时,结果会使用指数表示法。
  • 超出范围的precision可能会抛出RangeError,具体取决于浏览器实现。

toString()

定义

toString()方法返回指定数值的字符串表示形式,可以指定基数(进制)。

语法

numObj.toString([radix])
  • radix:可选。指定转换为字符串时使用的进制,范围为2到36,默认值为10。

用途

将数值转换为字符串,特别是在需要以其他进制(如二进制、十六进制)表示数值时。

示例

let num = 255;

console.log(num.toString());      // "255"
console.log(num.toString(2));     // "11111111"   // 二进制
console.log(num.toString(8));     // "377"        // 八进制
console.log(num.toString(16));    // "ff"         // 十六进制

注意事项

  • radix超出范围会抛出RangeError
  • 对于radix大于10的情况,返回的字符串中可能包含字母。

valueOf()

定义

valueOf()方法返回一个Number对象的原始数值。

语法

numObj.valueOf()

用途

通常在内部被JavaScript引擎调用,将对象转换为原始数值。一般不需要手动调用。

示例

let numObj = new Number(123);

console.log(typeof numObj);          // "object"
console.log(numObj.valueOf());       // 123
console.log(typeof numObj.valueOf()); // "number"

注意事项

  • 对于Number对象,valueOf()返回其原始数值。
  • 在算术运算和比较中,会自动调用valueOf()

toLocaleString()

定义

toLocaleString()方法根据特定区域设置,将数值转换为当地格式的字符串表示。

语法

numObj.toLocaleString([locales[, options]])
  • locales:可选。指定区域设置的语言代码,如"en-US"、“zh-CN”。
  • options:可选。用于定制格式化行为的配置对象。

用途

用于将数值按照特定语言和文化习惯格式化,适用于国际化应用。

示例

let num = 1234567.89;

console.log(num.toLocaleString());                       // 根据运行环境的默认语言设置
console.log(num.toLocaleString('en-US'));                // "1,234,567.89"
console.log(num.toLocaleString('de-DE'));                // "1.234.567,89"
console.log(num.toLocaleString('zh-CN'));                // "1,234,567.89"

// 使用options参数
let options = { style: 'currency', currency: 'USD' };
console.log(num.toLocaleString('en-US', options));       // "$1,234,567.89"

options = { style: 'currency', currency: 'CNY' };
console.log(num.toLocaleString('zh-CN', options));       // "¥1,234,567.89"

注意事项

  • toLocaleString()依赖于运行环境的国际化支持。
  • options参数可以定制数值的格式,包括样式、货币、最小和最大有效位数等。

结论

  • toExponential():以指数形式表示数值,控制小数位数。
  • toFixed():格式化数值为固定的小数位数,适合货币等场合。
  • toPrecision():控制数值的总有效位数,适用于需要特定精度的情况。
  • toString():将数值转换为字符串,支持不同的进制。
  • valueOf():获取数值的原始值,通常在内部自动调用。
  • toLocaleString():根据区域设置格式化数值,适用于国际化。

参考资料:


标签:03,toPrecision,console,log,toExponential,valueOf,数值,num,toLocaleString
From: https://blog.csdn.net/qq_33546823/article/details/142746825

相关文章

  • GB 18030及生僻字治理
     名词解释:编码字符集codedcharacterset一组无歧义的规则,用以建立一个字符集和该字符集中的字符及其编码表示之间的对应关系,通常也指按照这种规则确定的文字的有序集合。示例:1.GB18030是我国制订的以汉字为主并包含多种我国少数民族文字(例如藏、蒙古、傣、彝、朝鲜、维......
  • 【D3.js in Action 3 精译_032】第四章 D3 直线、曲线与弧线的绘制 + 4.1 坐标轴的创
    当前内容所在位置(可进入专栏查看其他译好的章节内容)第一部分D3.js基础知识第一章D3.js简介(已完结)1.1何为D3.js?1.2D3生态系统——入门须知1.3数据可视化最佳实践(上)1.3数据可视化最佳实践(下)1.4本章小结第二章DOM的操作方法(已完结)2.1第一......
  • 20222303 2024-2025-1 《网络与系统攻防技术》实验一实验报告
    1.实验内容在本周的学习中,重新回顾了栈和堆的概念,还学习了安全漏洞的相关概念,然后聚焦在其中的缓冲区溢出漏洞上,明白了缓冲区溢出的定义及发生的原理,并了解了缓冲区溢出发展历史上的一些经典攻击案例,收获颇丰。在本次的实验中,我掌握了反汇编与十六进制编程器相关知识,同时对NOP,......
  • Python,ModuleNotFoundError: No module named 'paho'
     Exceptioninthreaddjango-main-thread:    frompaho.mqttimportclientasmqtt_clientModuleNotFoundError:Nomodulenamed'paho'  解释:ModuleNotFoundError:Nomodulenamed'paho'表示Python解释器无法找到名为paho的模块。这通常意味着paho-mqtt客户端......
  • 多校A层冲刺NOIP2024模拟赛03
    T1.colorfu正难则反,直接枚举横行,枚举右边界,如果相同,则会对后面以及它本身统计产生\(1\)的贡献,我们直接开个桶统计一下。点击查看代码#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1000+107;intn,m;inta[N][N],cnt[N*N];intsum;......
  • (概述)TMS320C203PZ、TMS320C203PZA、TMS320C203PZ80、TMS320C203PZ57、TMS320C203PZA57
    TMS320C2x是TMS230C2系列数字信号处理器(DSP)的新一代产品,它采用静态CMOS集成电路制造技术,其结构设计以TMS320C2x系列为基础,并按低功耗进行优化。先进的哈佛结构、片内外围模块、片内存储器和高度专业化指令系统的结合是&#39;C2xx器件工作灵活性和高速度的基础。TMS320C203为100脚PZ......
  • 03. defer和switch
    1.switchswitch语句是编写一连串if-else语句的简便方法。它运行第一个case值,值等于条件表达式的子句。Go的switch语句类似于C、C++、Java、JavaScript和PHP中的,不过Go只会运行选定的case,而非之后所有的case。在效果上,Go的做法相当于这些语言中为每个case......
  • why do we need 'select…for share' instead of a simple 'select'
    (Fromchatgpt)AsimpleSELECTqueryinPostgreSQLoperatesundertheMVCC(Multi-VersionConcurrencyControl)model,whichallowsittoreaddatawithoutlockingtherows.Thismeansitcanseeasnapshotofthedataatthestartofthetransaction,rega......
  • 学习011-08-03 Numeric Properties(数字属性)
    NumericProperties(数字属性)XAFsupportsPropertyEditorsfornumericdatatypes(byte,int,decimal,long,correspondingnullabletypes,etc.)onallplatforms.However,WinForms,ASP.NETWebForms,andBlazorUIapplicationsusedifferentformattingru......
  • 学习011-08-03-01 Numeric Properties in XPO(XPO中的数字属性)
    NumericPropertiesinXPO(XPO中的数字属性)TheexamplebelowillustrateshowtoimplementNumericPropertiesinanXPOpersistentclass.下面的示例说明了如何在XPO持久类中实现数字属性。C#privatedoubledoubleProperty;publicdoubleDoubleProperty{g......