第二百零九节 Java格式 - Java数字格式类

Java格式 - Java数字格式类

以下两个类可用于格式化和解析数字:

  • java.text.NumberFormat
  • java.text.DecimalFormat

NumberFormat 类可以格式化一个数字特定地区的预定义格式。

DecimalFormat 类可以格式化数字以特定区域设置的自定义格式。

NumberFormat类的 getXXXInstance()方法返回格式化程序对象的实例。

XXX可以由数字,货币,整数或百分比替换,或只是getInstance()。这些方法都是重载的。

如果你调用它们没有参数,它们返回一个格式化对象默认语言环境。

使用number参数调用format()方法以将格式化的数字作为字符串。

import java.text.NumberFormat;public class Main {public static void main(String[] args) {NumberFormat formatter;// Get number formatter for default localeformatter = NumberFormat.getInstance();System.out.println(formatter.format(12312.123123));}
}

上面的代码生成以下结果。

例子

下面的代码说明了如何以默认格式为当前语言环境,法语语言环境和德语语言环境格式化数字。

import java.text.NumberFormat;
import java.util.Locale;public class Main {public static void main(String[] args) {double value = 123456789.9876543;// Default localeprintFormatted(Locale.getDefault(), value);// Indian localeLocale indianLocale = new Locale("en", "IN");printFormatted(indianLocale, value);}public static void printFormatted(Locale locale, double value) {// Get number and currency formatterNumberFormat nf = NumberFormat.getInstance(locale);NumberFormat cf = NumberFormat.getCurrencyInstance(locale);System.out.println("Format value: " + value + "  for locale: " + locale);System.out.println("Number: " + nf.format(value));System.out.println("Currency: " + cf.format(value));}
}

上面的代码生成以下结果。

DecimalFormat类

要执行更高级的格式化,我们可以使用DecimalFormat类。

DecimalFormat类允许我们提供我们自己的格式模式。 的下表显示模式及其用法。

符号位置含义
0Number代表数字
#Number数字,零显示为不存在
.Number小数分隔符或货币小数分隔符
-Number减号
,Number分组分隔符
ENumber以科学记数法分隔尾数和指数。
;子模式边界分隔正和负子模式
%字首或字尾乘以100并以百分比显示
\u2030字首或字尾乘以1000,并显示为每毫米值

一旦我们创建了DecimalFormat类的对象,就可以改变格式模式使用其 applyPattern()方法。

import java.text.DecimalFormat;public class Main {private static DecimalFormat formatter = new DecimalFormat();public static void main(String[] args) {formatNumber("##.##", 12.345);formatNumber("##.##", 12.345);formatNumber("0000.0000", 12.345);formatNumber("#.##", -12.345);// Positive and negative number format formatNumber("#.##;(#.##)", -12.735);}public static void formatNumber(String pattern, double value) {// Apply the pattern formatter.applyPattern ( pattern );String formattedNumber = formatter.format(value);System.out.println("Number:" + value + ", Pattern:" + pattern+ ", Formatted Number:" + formattedNumber);}
}

上面的代码生成以下结果。

解析

我们还可以使用 parse()方法将字符串解析为数字。 parse()方法返回 java.lang.Number 类的对象。

我们可以使用 java.lang.Number 类中的xxxValue()方法来获取原始值,其中xxx可以是byte,double,float,int,long和short。

import java.text.DecimalFormat;
import java.text.ParsePosition;public class Main {private static DecimalFormat formatter = new DecimalFormat();public static void main(String[] args) {// Parse a string to decimal numberString str = "qq1,234.567";String pattern = "#,###.###";formatter.applyPattern(pattern);// Create a ParsePosition object to specify the first digit of// number in the string. It is 1 in "qq1,234.567"// with the index 2.ParsePosition pp = new ParsePosition(2);Number numberObject = formatter.parse(str, pp);double value = numberObject.doubleValue();System.out.println("Parsed Value  is " + value);}}

上面的代码生成以下结果。

以上

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

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

相关文章

宠物空气净化器怎么选?新手必看猫用除毛空气净化器热门品牌推荐

作为资深铲屎官来说,一到换毛季节,家里的猪咪经常会出现掉毛的情况,而且如果不勤打扫的话,粑粑的臭味也挺重的。如果长期不清理家里的浮毛,很容易就会得鼻炎。 看了身边好几个铲屎官都在用宠物空气净化器,…

什么牌子的开放式耳机性价比高?五款高口碑精品推荐!

由于传统入耳式耳机可能对耳道健康造成长期影响,许多人开始偏好选择开放式耳机的非侵入式设计。这种耳机有助于减少耳内湿润、细菌增长,以及耳道闷热的不适感。为了帮助大家在众多产品中挑选合适的开放式耳机,我将列举一些市场反馈良好的款式…

Android10.0 人脸解锁流程分析

人脸解锁概述 人脸解锁即用户通过注视设备的正面方便地解锁手机或平板。Android 10 为支持人脸解锁的设备在人脸认证期间添加了一个新的可以安全处理相机帧、保持隐私与安全的人脸认证栈的支持,也为安全合规地启用集成交易的应用(网上银行或其他服务&am…

TikTok本土店海外仓发货总超时?EasyBoss ERP支持提前申请面单助力解决

近期有部分通过海外仓自发货的TikTok本土卖家表示:通过ERP推送订单至海外仓却无法立即出库,导致超出平台规定发货时间被平台处罚。 而出现这样的原因在于:通过ERP处理的TikTok订单,在使用认证的海外仓发货时,订单会先…

【C++ Primer Plus习题】2.2

问题: 解答: #include <iostream> using namespace std;#define LONG_TO_MA 220int main() {double distance 0;cout << "请输入距离(单位为long):";while (true){cin >> distance;if (cin.fail()){cout << "输入有误!请输入数字:&qu…

Redis 集群三主三从配置

1&#xff1a;安装 Redis安装Linux ubuntu_ubuntu离线安装redis7.2.5-CSDN博客 2&#xff1a;主从复制配置 参考 Redis主从同步配置-CSDN博客 3&#xff1a;哨兵配置 参考 Redis 哨兵模式配置-CSDN博客 4&#xff1a;集群配置 Redis 集群三主三从配置-CSDN博客 5&…

OpenCV与AI深度学习 | 使用OpenCV图像修复技术去除眩光

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;使用OpenCV图像修复技术去除眩光 眩光是一种因过度和不受控制的亮度而引起的视觉感觉。眩光可能会使人丧失能力或只是让人感到不舒服。眩光是一…

【一起学Rust | 框架篇 | Tauri2.0框架】tauri中rust和前端的相互调用(rust调用前端)

文章目录 前言1. rust中调用前端2. 如何向前端发送事件3. 前端监听事件4. 执行js代码 前言 近期Tauri 2.0 rc版本发布&#xff0c;2.0版本迎来第一个稳定版本&#xff0c;同时官方文档也进行了更新。Tauri是一个使用Rust构建的框架&#xff0c;可以让你使用前端技术来构建桌面…

Redis7基础篇(九)

springboot集成redis 目录 springboot集成redis 总体概述 java连接redis常见问题 集成jedis 集成lettuce 集成redistemplate 连接单机 ​编辑​编辑​编辑redis集群 总体概述 java要想连接mysql的话需要jdbc java想要连接redis也需要中间件 jedis是第一代 lettuce第…

前后端分离项目实战-通用管理系统搭建(前端Vue3+ElementPlus,后端Springboot+Mysql+Redis)第三篇:登录功能优化

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

钓鱼的常见几种方式

钓鱼的多种方式 office钓鱼攻击 宏与宏病毒 # 宏 宏是office自带的一种高级脚本特性&#xff0c;通过VBA代码&#xff0c;可以在office中去完成某项特定的任务&#xff0c;而不必再重复相同的动作&#xff0c;目的是让用户文档中一些任务自动化# 宏病毒 宏病毒是一种寄存在文…

linux笔记1

命令格式 命令行界面的提示符解析&#xff1a; [rootlocalhost ~]# root位置&#xff1a; 登录用户名 &#xff1a; 连接符号 localhost位置: 本机的主机名 ~位置: 当前的所在位置 #位置&#xff1a; 表示是超级管理员还是普通用户 超级管…

RPA自动化流程机器人助力企业财务数字化转型

在数字经济时代&#xff0c;企业需要快速响应市场变化&#xff0c;而财务数字化转型是企业适应现代商业环境、提升竞争力的必要步骤。财务数字化转型不仅涉及企业财务能力的提升&#xff0c;推动了财务管理与决策模式的转变。RPA自动化流程机器人因其能通过自动化技术帮助企业实…

超声波水表是什么?量程比又是什么?

一、超声波水表概述 1.定义&#xff1a; 超声波水表是一种利用超声波技术来测量水流速度&#xff0c;进而计算出流经管道的水体积流量的计量设备。它通过发送和接收超声波信号的时间差来确定水流的速度&#xff0c;从而精确地计量水的流量。 2.工作原理&#xff1a; 超声波…

Android 架构模式之 MVC

目录 架构设计的目的对 MVC 的理解Android 中 MVC 的问题试吃个小李子ModelViewController 大家好&#xff01; 作为 Android 程序猿&#xff0c;MVC 应该是我们第一个接触的架构吧&#xff0c;从开始接触 Android 那一刻起&#xff0c;我们就开始接触它&#xff0c;可还记得我…

企业入驻西安国际数字媒体产业园的十大好处

在当今数字化飞速发展的时代&#xff0c;企业的发展需要依托创新的平台和资源的整合。西安国际数字影像产业园&#xff0c;作为数字产业的引领者&#xff0c;为入驻企业提供了众多独特的优势和机遇。 好处一&#xff1a;产业集聚效应。西安国际数字影像产业园汇聚了众多数字媒体…

【Unity】通用GM QA工具 运行时数值修改 命令行 测试工具

GM工具使用: GM工具通常用于游戏运行时修改数值(加钱/血量)、解锁关卡等&#xff0c;用于快速无死角测试游戏。一个通用型GM工具对于游戏项目是非常实用且必要的&#xff0c;但通用不能向易用妥协&#xff0c;纯命令行GM门槛太高&#xff0c;对QA不友好。 这类运行时命令行工具…

【蓝桥杯冲刺省一,省一看这些就够了-C++版本】蓝桥杯STL模板及相关练习题

蓝桥杯历年省赛真题 点击链接免费加入题单 STL map及其函数 map<key,value> 提供一对一的数据处理能力&#xff0c;由于这个特性&#xff0c;它完成有可能在我们处理一对一数据的时候&#xff0c;在编程上提供快速通道。map 中的第一个值称为关键字(key)&#xff0c;…

以前嗤之以鼻,现在逐字学习!缠论量化代码大公开!|邢不行

这是邢不行第 113 期量化小讲堂的分享 作者 | 邢不行、密斯锌硒 一千个人眼中有一千个哈姆雷特&#xff0c;我们只是尽可能的去量化我们理解的部分缠论的思路。 我们过往在文章中多次聊过技术指标&#xff0c;如MACD、KDJ等等&#xff0c;也聊过一些K线形态&#xff0c;如跳…

C语言 | Leetcode C语言题解之第354题俄罗斯套娃信封问题

题目&#xff1a; 题解&#xff1a; int cmp(int** a, int** b) {return (*a)[0] (*b)[0] ? (*b)[1] - (*a)[1] : (*a)[0] - (*b)[0]; }int maxEnvelopes(int** envelopes, int envelopesSize, int* envelopesColSize) {if (envelopesSize 0) {return 0;}qsort(envelopes, …