在JDK 12精简数字格式中使用最小分数数字

帖子“ 紧凑数字格式出现在JDK 12中 ”演示了对JDK 12中 NumberFormat的支持,以支持紧凑数字格式 。 该帖子中显示的示例仅使用NumberFormat的调用重载了NumberFormat的新重载getCompactNumberInstance(-)方法返回的NumberFormat实例,因此没有指定诸如最小小数位和最大小数位之类的特征 。 在某些情况下,结果不理想。 幸运的是, NumberFormat确实允许指定最小和最大小数位,并且本文演示了如何改善JDK 12提供的紧凑数字格式的输出。

原始“ 紧凑型数字格式来到JDK 12 ”一文中介绍的代码清单( 可在GitHub上找到 )已更新,以演示NumberFormat.setMinimumFractionDigits(int)的使用 。 接下来是该代码的摘录,然后是随附的输出。

/*** Generates standardized map of labels to Compact Number Format* instances described by the labels. The instances of {@code NumberFormat}* are created with Locale and Style only and with the provided number* of minimum fractional digits.** @return Mapping of label to an instance of a Compact Number Format*    consisting of a Locale, Style, and specified minimum number of fractional*    digits that is described by the label.*/
private static Map<String, NumberFormat> generateCompactNumberFormats(final int minimumNumberFractionDigits)
{var numberFormats = generateCompactNumberFormats();numberFormats.forEach((label, numberFormat) ->numberFormat.setMinimumFractionDigits(minimumNumberFractionDigits));return numberFormats;
}/*** Demonstrates compact number formatting in a variety of locales* and number formats against the provided {@code long} value and* with a minimum fractional digits of 1 specified.* @param numberToFormat Value of type {@code long} that is to be*    formatted using compact number formatting and a variety of*    locales and number formats and with a single minimal fractional*    digit.*/
private static void demonstrateCompactNumberFormattingOneFractionalDigitMinimum(final long numberToFormat)
{final Map<String, NumberFormat> numberFormats = generateCompactNumberFormats(1);out.println("Demonstrating Compact Number Formatting on long '" + numberToFormat+ "' with 1 minimum fraction digit:");numberFormats.forEach((label, numberFormat) ->out.println("\t" +  label + ": " + numberFormat.format(numberToFormat)));
}
Demonstrating Compact Number Formatting on long '15' with 1 minimum fraction digit:Default: 15US/Long: 15UK/Short: 15UK/Long: 15FR/Short: 15FR/Long: 15DE/Short: 15DE/Long: 15IT/Short: 15IT/Long: 15
Demonstrating Compact Number Formatting on long '150' with 1 minimum fraction digit:Default: 150US/Long: 150UK/Short: 150UK/Long: 150FR/Short: 150FR/Long: 150DE/Short: 150DE/Long: 150IT/Short: 150IT/Long: 150
Demonstrating Compact Number Formatting on long '1500' with 1 minimum fraction digit:Default: 1.5KUS/Long: 1.5 thousandUK/Short: 1.5KUK/Long: 1.5 thousandFR/Short: 1,5 kFR/Long: 1,5 millierDE/Short: 1.500DE/Long: 1,5 TausendIT/Short: 1.500IT/Long: 1,5 mille
Demonstrating Compact Number Formatting on long '15000' with 1 minimum fraction digit:Default: 15.0KUS/Long: 15.0 thousandUK/Short: 15.0KUK/Long: 15.0 thousandFR/Short: 15,0 kFR/Long: 15,0 milleDE/Short: 15.000DE/Long: 15,0 TausendIT/Short: 15.000IT/Long: 15,0 mila
Demonstrating Compact Number Formatting on long '150000' with 1 minimum fraction digit:Default: 150.0KUS/Long: 150.0 thousandUK/Short: 150.0KUK/Long: 150.0 thousandFR/Short: 150,0 kFR/Long: 150,0 milleDE/Short: 150.000DE/Long: 150,0 TausendIT/Short: 150.000IT/Long: 150,0 mila
Demonstrating Compact Number Formatting on long '1500000' with 1 minimum fraction digit:Default: 1.5MUS/Long: 1.5 millionUK/Short: 1.5MUK/Long: 1.5 millionFR/Short: 1,5 MFR/Long: 1,5 millionDE/Short: 1,5 Mio.DE/Long: 1,5 MillionIT/Short: 1,5 MlnIT/Long: 1,5 milione
Demonstrating Compact Number Formatting on long '15000000' with 1 minimum fraction digit:Default: 15.0MUS/Long: 15.0 millionUK/Short: 15.0MUK/Long: 15.0 millionFR/Short: 15,0 MFR/Long: 15,0 millionDE/Short: 15,0 Mio.DE/Long: 15,0 MillionenIT/Short: 15,0 MlnIT/Long: 15,0 milioni

如上面的示例和输出所示,使用NumberFormat.setMinimumFractionDigits(int)可以生成紧凑的数字格式输出,在许多情况下,从美学上讲更令人愉悦。 OpenJDK core-libs-dev邮件列表上最近有一个讨论“ 紧凑数字格式和小数位数 ”,该讨论还讨论了自定义紧凑数字格式输出的功能。

翻译自: https://www.javacodegeeks.com/2019/01/usingfractional-digits-compact-number.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux做定时数据库备份,Linux实现定时备份数据库

1.创建开启定时任务1.1crontab -e 打开定时任务编辑器1.2 0 1 * * * /备份脚本存放路径-用crontab -e 编辑器打开存放好1.3 crontab -l 查看定时任务1.4 service crond start 启动定时任务1.5 service crond status查看定时任务状态2.创建定时备份脚本touch test.sh 创建脚本&…

【渝粤题库】陕西师范大学151112 审计学作业(高起专)

《审计学》作业 一、单选题 1.注册会计师评估的重大错报风险与所需审计证据的数量呈&#xff08; &#xff09;变动关系。 2.注册会计师在检查登记入账的销货业务的真实性时&#xff0c;有效的做法是&#xff08; &#xff09;。 A.从主营业务收入明细账追查至发运凭证 B.从发…

【渝粤题库】陕西师范大学163210 旅行社经营与管理

单选题 中国国际旅行社成立于&#xff08; &#xff09;年。 A.1949 B.1954 C.1980 D.1923 新中国成立后&#xff0c;我国第一家旅行社是1949年成立的&#xff08; &#xff09;。 A.厦门华侨服务社 B.中国青年旅行社 C.中国旅行社 D.中国国际旅行社 &#xff08; &#xff09;…

linux sftp自动输入密码,linux下实现sftp自动登录。

今天帮之前同事写一个sftp自动上传的脚本&#xff0c;因为sftp无法匿名登录&#xff0c;因此使用sftp时&#xff0c;每次都需要输入服务器密码&#xff0c;无法进行自动上传和下载文件&#xff0c;其中一种方法可以使用lftp这个就不在详细介绍了&#xff0c;现在介绍另外一种方…

【渝粤题库】陕西师范大学165107工作分析与设计作业(高起专)

《工作分析与设计》作业 单选题 1、工作分析最初产生于&#xff08; &#xff09;的工业企业中。 A.英国 B.德国 C.美国 D.日本 2、&#xff08; &#xff09;是组织中最基本的活动单元。 A.任务 B. 部门 C.工作 D.岗位 3、同一职系中职责繁简、难易、轻重及任职条件充分相似的…

【渝粤题库】陕西师范大学180210 国际市场营销学 作业

一、单选题 日本市场具有( )特点 A. 经营国际化 B. 市场渠道畅通 C. 销售季节性强 D. 垄断控制型市场国际工业品市场细分不可以依据( ) A. 用户规模 B. 用户购买力大小 C. 消费者年龄 D. 购买决策产生的过程文化环境是( ) A&#xff0e;静止的 B. 不会影响商业习俗的 C. 对任何…

使用ClickHouse UDF与OpenAI模型集成

本文字数&#xff1a;14683&#xff1b;估计阅读时间&#xff1a;37 分钟 作者&#xff1a;Dale McDiarmid 审校&#xff1a;庄晓东&#xff08;魏庄&#xff09; 本文在公众号【ClickHouseInc】首发 Meetup活动 ClickHouse Shenzhen User Group第1届 Meetup 火热报名中&#x…

guava的正确引入方式_使用Guava的AbstractInvocationHandler正确完成代理

guava的正确引入方式不太经常&#xff0c;但有时我们被迫使用java.lang.reflect.Proxy编写自定义动态代理类 。 这种机制实际上没有任何魔术&#xff0c;即使您永远不会真正使用它&#xff0c;也值得知道–因为Java代理在各种框架和库中无处不在。 这个想法很简单&#xff1a;…

vba执行linux命令,如何使用vba的shell()运行参数的.exe?

我有一个目标文件路径的结构如下例所示。C:\Program Files\Test\foobar.exe /G我需要做的就是使用vba的shell()命令来执行这个文件。如何格式化文件路径以告诉Shell()有一个参数&#xff0c;它需要调用与运行.exe我已经阅读/尝试(无效)在下面的结果在右边。file ""&…

【渝粤题库】陕西师范大学200271 微分几何 作业(专升本)

《微分几何》作业 一. 填空题 曲面的第一基本形式为&#xff08; &#xff09;。空间曲线的基本公式是&#xff08; &#xff09;。曲面在任一点&#xff08;u&#xff0c;v&#xff09;的单位法向量公式为&#xff08; &#xff09;空间曲线的切向量为&#xff08; &#xff…

【渝粤题库】陕西师范大学200771 可视化程序设计

《可视化程序设计》作业 一、单项选择题 1、VB应用程序在&#xff08; &#xff09;模式下不能编辑代码和设计界面。 A 运行B 中断C 设计D 以上均不能 2、将列表框&#xff08;List Box&#xff09;上要显示的内容放到列表框控件上的方法是&#xff08; &#xff09;。 A Addit…

使用Spring Boot和Vue.js构建一个简单的CRUD应用

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 在本教程中&#xff0c;您将使用Vue.js作为客户端并将Spring Boot作为资源服务器来构…

linux 装windows软件,常用软件的安装(windows/linux)

JavaScript单线程和浏览器事件循环简述JavaScript单线程 在上篇博客的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...Free Slideshow&comma; Gallery And Lightboxes Scriptshttp://bootstraphelpers.codeplex.c…

【渝粤题库】陕西师范大学201401 环境资源法作业

《环境法》作业 一、单项选择题 1&#xff0e;属于环境法保护客体的有&#xff08; &#xff09; A山林中的大熊猫 B马戏团的金丝猴 C 动物园的老虎 D家养的小狗 2&#xff0e;按环境的形成分将人类环境可划分为&#xff08; &#xff09; A 原生环境和次生环境 B 生存环境和生…

linux安装 icc编译器,安装 Intel Compiler (ifort icc icpc)

在下载目录下解压heqinheqin-dell:~/Downloads$ tar zxvf parallel_studio_xe_2017_update7.tgz进入解压后的文件夹heqinheqin-dell:~/Downloads$ cd parallel_studio_xe_2017_update7/为了记录过程而不用截图&#xff0c;我选择用命令行安装&#xff0c;当然你也可以用install…

【渝粤题库】陕西师范大学201981教育统计与测量 作业 (专升本、高起本)

教育统计与测量[数学]作业 填空 标准分数有____________、两种基本形式。 常见的集中量数有、、。 回归分析中&#xff0c;平方和分解公式为_________。 衡量测验的质量指标有_______、、、。 常用的随机抽样方法有_、、________。 用来衡量一组数据__________的量称为差异量数…

【渝粤题库】陕西师范大学202321投资银行学 作业(专升本)

《投资银行学》作业 一 单项或多项选择题 &#xff08;一&#xff09;多项选择&#xff1a;1&#xff0e;狭义的投资银行一般仅指传统意义上的投资银行&#xff0c;主要指从事证券发行承销和( )的金融机构 A.证券投资 B.证券兑换 C.证券交易 D.证券管理 2&#xff0e;1999年美…

linux 修改docker配置文件,dockerfile动态修改服务配置文件(示例代码)

主要是利用命令envsubst能实现变量的替换并生成新得配置文件以及docker命令行的变量输入等。本次实验主要是编写flume镜像&#xff0c;并在容器启动(docker run)时动态修改配置文件并启动&#xff0c;并向flume发数据&#xff0c;然后发给kafka。此实验的基础&#xff1a;会doc…

【渝粤题库】陕西师范大学209011商业银行信贷管理Ⅱ 作业(专升本)

《商业银行信贷管理Ⅱ》作业 一、单项选择题 1、我国改革开放以来信贷资金来源的最主要支柱是&#xff08; &#xff09;。 A&#xff0e;企业存款 B&#xff0e;财政存款 C&#xff0e;储蓄存款 D&#xff0e;外汇存款 2、汇票的承兑人明确表示按照票据说明的事项&#xff0c;…

cargo maven_与Maven 3,Failsafe和Cargo插件的集成测试

cargo maven开箱即用&#xff0c;可以在Maven中进行单元测试。 因此&#xff0c;它也经常用于集成测试。 这样做的主要缺点是集成测试可能需要花费更多的时间来执行&#xff0c;并且因为没有人喜欢每次构建都要等待很长时间–只是使用-Dmaven.test.skiptrue标志跳过了测试 为了…