在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
在JDK 12精简数字格式中使用最小分数数字相关推荐
- 精简jdk包_在JDK 12精简数字格式中使用最小分数数字
精简jdk包 帖子" 紧凑数字格式出现在JDK 12中 "演示了对JDK 12中 NumberFormat的支持,以支持紧凑数字格式 . 该帖子中显示的示例仅使用NumberFor ...
- jdk安装教程_在JDK 12精简数字格式中使用最小分数数字
jdk安装教程 帖子"紧凑数字格式出现在JDK 12中"演示了对JDK 12中NumberFormat的支持,以支持紧凑数字格式. 该帖子中显示的示例仅使用NumberFormat ...
- 精简jdk包_具有JDK 12精简数字格式的自定义精简数字模式
精简jdk包 帖子" 紧凑数字格式出现在JDK 12中 "已经成为有关Java subreddit线程的讨论主题 . 在那个线程中表达的与紧凑数字格式表示有关的问题涉及显示的精度数 ...
- 具有JDK 12精简数字格式的自定义精简数字模式
帖子" 紧凑数字格式到JDK 12 "已经成为java subreddit线程上讨论的主题 . 在那个线程中表达的与紧凑数字格式表示有关的问题涉及显示的精度数字和显示的紧凑数字模式 ...
- 如何从JavaScript中的给定数字中形成最小的数字
by Prashant Yadav 通过Prashant Yadav 如何从JavaScript中的给定数字中形成最小的数字 (How to form the smallest possible nu ...
- Excel 将数字格式中的e+14转换为文本数字格式
快速将Excel中显示为科学记数法的数字转换成文本形式的数字: 选择Excel中有问题的这一列:如 然后下选择"固定宽度"-----"下一步"-----&quo ...
- python列表转换成数字_Python中列表元素转为数字的方法分析
本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...
- python列表怎么转成数字,Python中列表元素转为数字的方法分析
本文实例讲述了Python中列表元素转为数字的方法.分享给大家供大家参考,具体如下: 有一个数字字符的列表: numbers = ['1', '5', '10', '8'] 想要把每个元素转换为数字: ...
- 数字逻辑中的最小完全集
逻辑门 这里只研究单输入单输出.二输入单输出的逻辑门. 单输入的逻辑门是非门(恒等的情况不考虑),真值表为 A B 0 1 1 0 逻辑门的类型,参见下表 A B C 0 0 c1 c_1 0 1 c ...
最新文章
- 北大吴思教授:人脑视觉机制有望开启下一代深度神经网络
- 微信公众平台开发 微信JSSDK开发
- android studio文件风格,Android Studio构建风格 – 如何拥有不同风格的相同源文件
- python开发工具排名-7款公认比较出色的Python IDE,你值得拥有!
- HDU2089——不要62 (数位DP)
- Mac OS使用技巧之十三:Finder中标记的使用
- deepin nginx连接php,利用docker运行nginx加上本机的php-fpm。访问html文件正常,但是访问php文件就报错404...
- c语言is int number,C语言中NSInteger,NSNumber以及Int的区别
- Python设置默认语言编码
- js省市二级联动;)
- 剑指offer——面试题39:二叉树的深度
- html获取视频时长,js获取本地视频时间长度
- 50个Windows软件的免费替代品
- Windows Server 2008 R2将tomcat添加进系统服务
- 怎样修改用户的计算机配置文件,用户配置文件
- 嵌入式系统概述3-嵌入式系统的开发流程和学习基础、方法
- 设置单独进程打开资源管理器有效防止电脑假死!
- druid数据源下 sqlserver 出现 对象名 'xxx' 无效
- RPA 项目经验分享
- 使用Python做QQ机器人