专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

numberformat的作用,numberformat数字格式化应用

来源:小易整编  作者:小易  发布时间:2023-03-17 09:52
摘要:numberformat的作用,numberformat数字格式化应用 Web前端开发过程中常会对后端传递过来的数值类型的对象进行格式化处理,以便用户更好的阅读。例如:数据统计里的数值、货币、百分比、角度、字节、面积、质量、温度、长度、容...

   numberformat的作用,numberformat数字格式化应用  

numberformat的作用,numberformat数字格式化应用

Web前端开发过程中常会对后端传递过来的数值类型的对象进行格式化处理,以便用户更好的阅读。例如:数据统计里的数值、货币、百分比、角度、字节、面积、质量、温度、长度、容量及一些符合单位等数据类型进行处理转换。所以下面看看关于Intl.NumberFormat对象对这些数值如何处理。

Intl.NumberFormat可以根据不同语言环境对数值进行不同的格式化处理。当然Number.prototype.toLocaleString也可以对数字进行一定格式的处理,但Intl.NumberFormat是更好的选择,因为它使创建这往往是一个可重复使用的格式实例更有效。

关于Intl对象前面有文章提到过,这里不再赘述。今天看看Intl中关于Intl.NumberFormat的应用。

常见应用背景

打开你手机相关应用软件(支付宝、微信、银行...),含金额1000以上方可看到这个金额以,分割,即三位分节法;下面看看在JavaScript中如何将其输出。

const formatter = new Intl.NumberFormat();
formatter.format(1000)
// 则会输出:"1,000"
formatter.format(1000.5934)
// 输出:"1,000.593"
formatter.format(1000.5956)
// 输出:"1,000.596"

同时也可以输出其组成元素。

formatter.formatToParts(1000)
// 则输出:
// [
//  {type: "integer", value: "1"},
//  {type: "group", value: ","},
//  {type: "integer", value: "000"}
// ]

另外也可以将其输出为中文十进制数字,如:

const formatter = new Intl.NumberFormat('zh-Hans-CN-u-nu-hanidec');
const res = formatter.format(8848.86);
// 输出:八,八四八.八六

类型单位

  • 角度: degree

  • 面积: acre, hectare

  • 百分比: percent

  • 字节: bit, byte, kilobit, kilobyte, megabit, megabyte, gigabit, gigabyte, terabit, terabyte, petabyte

  • 时间类长度: millisecond, second, minute, hour, day, week, month, year

  • 长度或高度或深度: millimeter, centimeter, meter, kilometer, inch, foot, yard, mile, mile-scandinavian

  • 质量:gram, kilogram, ounce, pound, stone

  • 温度: celsius, fahrenheit

  • 容积: liter, milliliter, gallon, fluid-ounce

长度表示

如我们所知的世界最高峰 - 珠穆朗玛峰 (其最新高度8848.86米)。若动态返回数据为8848.86,那么前端人员需要将其输出为8,848.86米。

const formatter = new Intl.NumberFormat('zh-CN', {
  style: 'unit',
  unit: 'meter',
});
const res = formatter.format(8848.86);
// 则输出:8,848.86米
// 若语言设置为'en',则输出:8,848.86m

当然在高度或长度方面还存在别的单位,如:毫米、厘米、千米等等(millimeter,centimeter,meter,kilometer,inch,foot,yard,mile,mile-scandinavian)。

字节单位表示

kB、MB、Gb、Tb这几个单位在日常生活中也是常见的。

const formatter = new Intl.NumberFormat('zh-CN', {
  style: 'unit',
  unit: 'megabyte',
});
const res = formatter.format(1024);
// 则输出:1,024 MB
// 其他
// ...
// 若unit设置"gigabit",则:1,024 Gb
// 若unit设置"terabit",则:1,024 Tb
// ...

其他单位输出可以设置:bit,byte,kilobit,kilobyte,megabit,megabyte,gigabit,gigabyte,terabit,terabyte,petabyte。

复合单位表示

单位连接组合,如:'40 小时/周' (每周工作40小时)。

const formatter = new Intl.NumberFormat('zh-CN', {
  style: 'unit',
  unit: 'hour-per-week',
});
const res = formatter.format(40);
// 中文输出:40小时/周
// 英文输出:40 hr/w

unit 由 hour与week组合而成的单位,同样还有km/h(千米/小时: km/h),就可以设置unit为:'kilometer-per-hour'。还有常见的当前网速,每秒多少兆,设置 'megabyte-per-second'(5MB/秒);

百分比表示

常见统计类数据将会以百分比表示;如成功率占据95%,则可设置unit为percent即可。

const formatter = new Intl.NumberFormat('zh-CN', {
  style: 'unit',
  unit: 'percent',
  // signDisplay: 'always',
  // signDisplay: 'exceptZero',
});
const res = formatter.format(95);
// 则输出:95%
// 设置 signDisplay: 'always',则输出:+95% 或 -95%

在某些情况下(例如显示增量),即使数字为正数,也有助于显式显示符号,如:+95%或-95%。可设置signDisplay: 'always'即可。排除输出+0%或-0%时设置signDisplay: 'exceptZero'即可。

货币表示

例如输出人民币5000000(500万)。

const formatter = new Intl.NumberFormat('zh-CN', {
  style: 'currency',
  // 输出人民币
  currency: 'CNY',
  // 输出美元,语言设置为'en'
  // currency: 'USD',
  // currencySign选项启用记帐格式
  currencySign: 'accounting',
});
const res = formatter.format(5000000);
//输出结果:¥5,000,000.00
// 其他
// 人民币:输出结果:¥5,000,000.00
// 美元:输出结果:$5,000,000.00

同样以英文输出美元,设置其语言项与货币类型即可。如人民币CNY,美元USD,欧元EUR等等。

质量表示

例如:输出500克;千克设置'kilogram'即可。

const formatter = new Intl.NumberFormat('zh-CN', {
  style: 'unit',
  unit: 'gram',
});
const res = formatter.format(500);
// 输出 500 g

更多单位如: gram, kilogram, ounce, pound, stone。

温度表示

例如:今天气温在28度。

const formatter = new Intl.NumberFormat('zh-CN', {
  style: 'unit',
  unit: 'celsius',
});
const res = formatter.format(28);
// 输出:28°C

更多单位选择 celsius, fahrenheit。

容积表示

const formatter = new Intl.NumberFormat('zh-CN', {
  style: 'unit',
  unit: 'milliliter',
});
const res = formatter.format(28);
// 中文输出:28毫升
// 英文输出:28 mL

更多单位选择 liter(升),milliliter(毫升),gallon(加仑),fluid-ounce(液盎司)。

角度表示

const formatter = new Intl.NumberFormat('zh-CN', {
  style: 'unit',
  unit: 'degree',
});
const res = formatter.format(90);
// 输出:90°

大数字表示

如:中国大陆有14多亿人,那该如何表示,1400000000这样显示看起来有点费劲,在中文里,我们可以表示14亿。

const formatter = new Intl.NumberFormat('zh-CN', {
  notation: 'compact',
});
const res = formatter.format(1400000000);
// 输出:14亿

本文地址:百科问答频道 https://www.neebe.cn/wenda/929609.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


百科问答
小编:小易整编
相关文章相关阅读
  • Web应用是什么意思?

    Web应用是什么意思?

    Web应用一般是指Web站点或者Web服务,它们通常都可以被用来支持管理工作和业务流程。Web应用是一种可以在互联网上运行的应用程序,它是指通过Web浏览器(例如InternetExplorer、Firefox、Opera或Safari...

  • 云应用是什么?

    云应用是什么?

    云应用方面有云存储、云服务,还有许多地方企业性质的云端,如鄱阳云计算、苏宁云商等等,它们虽然看似新名词,但实际上主打概念,真正的作用就是在宽带作用下,可以达到在线共享和在线携带功能,我们可以列举出这些“云”如何运用。云存储:百度云、网盘等。...

  • 网络应用是什么意思?

    网络应用是什么意思?

    网络应用(Networkapplication)指的是利用网络传输和处理数据的一类应用程序,包括通过电子邮件、下载文件、在线娱乐、社交网络等通过网络实现的功能。网络应用起源于90年代中期,开发者们开始利用网络来提供互动的服务,并用于交流...

  • tts是什么意思?tts有什么功能作用

    tts是什么意思?tts有什么功能作用

    tts是什么意思,tts有什么功能作用?TTS的全称为TextToSpeech,即“从文本到语音”。它是同时运用语言学和心理学的杰出之作,在内置芯片的支持之下,通过神经网络的设计,把文字智能地转化为自然语音流。TTS技术对文本文件进行实...

  • nas是什么意思啊(nas的作用)

    nas是什么意思啊(nas的作用)

    NAS(网络附属存储)是一个数据存储设备,用户可以用来保存照片、视频、音乐和文档。NAS用户可以仅由自己使用,可以与家庭/朋友或同事之间的大型团体共享。也可以从移动设备和计算机访问NAS。与网盘云服务相比,NAS会提供更大的便利性和趣...

  • 电脑中esc键的作用(电脑esc是什么键)

    电脑中esc键的作用(电脑esc是什么键)

    在win7系统中,朋友们对键盘上的某些按键有哪些功能,还不是很了解。这次六哥来谈谈win7系统中ESC键的各种功能,保证朋友们使用更加便捷。ESC键的简介:电脑键盘上的Esc键诞生于1960年,位于电脑键盘的左上方,英文单词escape的缩...

  • 手机蓝牙的作用和用法(手机蓝牙有什么用途)

    手机蓝牙的作用和用法(手机蓝牙有什么用途)

    每部手机上都有一个蓝牙功能,大家以前都会用它来传输文件,不过随着移动网络和WiFi的普及,这个功能也渐渐被大家忽略了。今天,我们就来科普一些手机蓝牙不为人知的功能,让大家可以更好的使用这一功能。1、传输文件传输文件,这一功能应该是大家最熟悉...

  • 如何通过360软件管家安装应用

    如何通过360软件管家安装应用

    360软件管家是一款功能强大的应用管理软件,有些用户想知道如何通过该软件安装应用,接下来小编就给大家介绍一下具体的操作步骤。具体如下:1.首先第一步打开电脑浏览器,先在搜索框中输入【360软件管家】,接着根据下图箭头所指,点击【普通下载】...

  • 周排行
  • 月排行
  • 年排行

精彩推荐