java中的%nf_java中DecimalFormat四舍五入用法详解

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。它可以支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)这些内容的本地化。

下边先介绍下DecimalFormat的用法:

import java.text.*;

import java.util.*;

public class DecimalFormatDemo {

public static void main(String args[]) {

DecimalFormat df1 = new DecimalFormat("###,###.0000");//使用系统默认的格式

System.out.println(df1.format(111111123456.12));

Locale.setDefault(Locale.US);

DecimalFormat df2= new DecimalFormat("###,###.0000");//使用美国的格式

System.out.println(df2.format(111111123456.12));

//----------------------------also use applypattern------------------------------//

DecimalFormat df3= new DecimalFormat();

myformat3.applyPattern("##,###.000");

System.out.println(df3.format(11112345.12345));

//-----------------控制指数输出-------------------------------------------------//

DecimalFormat df4= new DecimalFormat();

myformat4.applyPattern("0.000E0000");

System.out.println(df4.format(10000));

System.out.println(df4.format(12345678.345));

//------------------百分数的输出-------------------------------------------//

DecimalFormat df5= null;

try{

df5= (DecimalFormat)NumberFormat.getPercentInstance();

}catch(ClassCastException e){

System.err.println(e);

}

df5.applyPattern("00.0000%");

System.out.println(df5.format(0.34567));

System.out.println(df5.format(1.34567));

}

}

(1)对于数据的四舍五入:

DecimalFormat 包含一组符号,对于各符号的含义解释如下:

0 一个数字

# 一个数字,不包括 0

. 小数的分隔符的占位符

, 分组分隔符的占位符

; 分隔格式。

- 缺省负数前缀。

% 乘以 100 和作为百分比显示

? 乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用国际货币符号代替。如果出现在一个模式中,用货币十进制分隔符代 替十进制分隔符。

X 前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。

例如:

DecimalFormat df1 = new DecimalFormat("###0.00") ; //保留两位小数,如果不足两位小数则自动补零

System.out.println(df1.format(124.367));

System.out.println(df1.format(124.3));

DecimalFormat df2 = new DecimalFormat("###0.##") ; //保留两位小数,不足两位则不补零

System.out.println(df2.format(124.6));

System.out.println(df2.format(124));

DecimalFormat df3 = new DecimalFormat("000.000"); //保留三位小数,哪里不足位则补零

System.out.println(df3.format(24));

DecimalFormat df = new DecimalFormat("0.000E0000"); //指数

System.out.println(df.format(1234.56));

DecimalFormat nf = (DecimalFormat)NumberFormat.getPercentInstance(); //百分数

System.out.println(nf.format(0.476354));

nf.applyPattern("00.00%") ;

System.out.println(nf.format(0.476354));

运行结果:

124.37

124.30

124.6

124

024.000

1.235E0003

48%

47.64%

(2)对于读取并解析包含格式化的数字的字符串?解析支持包含在NumberFormat中。例如:

import java.util.Locale;

import java.text.NumberFormat;

import java.text.ParseException;

public class DecimalFormat5 {

public static void main(String args[]) {

// 本地格式

NumberFormat nf1 = NumberFormat.getInstance();

Object obj1 = null;

// 基于格式的解析

try {

obj1 = nf1.parse("1234,56");

}

catch (ParseException e1) {

System.err.println(e1);

}

System.out.println(obj1);

// 德国格式

NumberFormat nf2 =NumberFormat.getInstance(Locale.GERMAN);

Object obj2 = null;

// 基于格式的解析

try {

obj2 = nf2.parse("1234,56");

}

catch (ParseException e2) {

System.err.println(e2);

}

System.out.println(obj2);

}

}

运行结果:

123456 //美国运行;被认为字符串

1234.56 //德国运行;被认为一个小数

(3)对于DecimalFormat和NumberFormat:

DecimalFormat是NumberFormat的一个子类,其实例被指定为特定的地区。因此,你可以使用NumberFormat.getInstance 指定一个地区,然后将结构强制转换为一个DecimalFormat对象。文档中提到这个技术可以在大多情况下适用,但是你需要用try/catch 块包围强制转换以防转换不能正常工作 (大概在非常不明显得情况下使用一个奇异的地区)。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

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

相关文章

org.SLF4J

SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。 实际上,SLF4J所提供的核心API是一些接口以及一个LoggerF…

生产者与消费者

package ProConDemo; //创建资源 public class Goods { private String name; //计数器 private int count 1; //创建一个标记 private boolean flag; //创建资源的生产行为 public synchronized void Sale(String name) { //判断标记 while(flag) //有资源就等待 try {wait()…

java业务层怎么设计_java – 在业务逻辑和数据层看起来重叠时分解它们的最佳设计?...

我正在构建一个MVC Web应用程序(使用Spring MVC框架),我对设计特定区域的最佳方法感到有些困惑.应用程序必须与一系列Web服务进行交互,这些Web服务并非真正设计得非常完美,并且本身并不提供很多抽象 – 基本上每个创建/更新/检索/删除操作都有一个Web服务方法.每个“数据类型”…

Lunx运维监控_shark巨菜_基础篇

Lunx运维监控_shark巨菜_基础篇一、监控重要性单单从“监控”两个字来谈,范围之广可以涵盖我们生活的方方面面,我们生活和工作中处处可见视频监控的摄像机;机房中的电压电流监控、干湿计、温度计;值班室的网络监控,网站…

ansible for devops读书笔记第一章

yum -y install ansible ansible --versionmkdir /etc/ansible touch /etc/ansible/hosts[example]   www.example.com ansible example -m ping -u [username]ansible example -a "free -m" -u [username]转载于:https://www.cnblogs.com/guxiaobei/p/8250988.htm…

java项目皮肤包_java swing项目皮肤包+使用方法说明

这是java swing项目皮肤包使用方法说明下载,项目可用的皮肤包,总共四个,自己下载总结的,包含使用代码说明。直接在main函数最开始加入说明代码即可使用~~~加入代码后记得处理异常!软件介绍java swing项目皮肤包使用方法…

Oracle中sys和system的区别

1.数据库的启动需要以SYSDBA/SYSOPER身份登录。 2.如果在同一主机上使用IPC连接到数据库使用操作系统授权,登录任何一个用户都可以拥有as sysdba和as sysoper。 3.sys和system用户的区别 SYS用户具有DBA权限,并具有SYS模式。只能通过SYSDBA登录数据库&am…

引用和指针区别

1.引用是一个已存在对象的别名,必须被初始化,且所指对象唯一。 指针本身就是一个对象,可以为空值,能够指向不同的对象。 2.引用本质上是被限制的指针。更安全,更可靠。转载于:https://www.cnblogs.com/Chixinyang/p/82…

WinXP的EFS加密文件如何解密?

根据网上流传的资料,EFS(Encrypting File System)EFS加密是基于公钥策略的。在使用EFS加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的FEK(File Encryption Key,文件加密钥匙),然后将利用FEK和…

关于滚动条出现页面跳动问题

二、CSS3计算calc和vw单位巧妙实现滚动条出现页面不跳动 很简单,只要一行代码就搞定了: .wrap-outer {margin-left: calc(100vw - 100%); } 或者: .wrap-outer {padding-left: calc(100vw - 100%); } 然后就可以庆祝放鞭炮啦!&…

JAVA生产环境验证_Java生产环境下性能监控与调优详解

本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优;通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出、cpu负载飙高等问题;学会线上代码调试,Tomcat、Nginx,GC调优等手段&a…

17款漂亮的 HTML5 网站模板免费下载

在过去的几年,设计师们已开始关注和使用 HTML5 了,如今 HTML5 得到了更加广泛的应用。今天,本文与大家分享17款免费的 HTML5 网站模板,看看有没自己喜欢的。 1- Smart Net 免费下载 2- Photo Art 免费下载 3- The Art Of Business…

ES6 (总结篇二)

一.字符串扩展 1.indexOf和index 之前做项目,遇到判断一个字符串是否存在,不清楚用index还是indexOf,百度之后,用了indexOf。indexOf:返回某个指定的字符串值在字符串中首次出现的位置 ,如果没有找到这个值…

python中try finally的用法_Python中的try-finally子句

您可以将finally:块与try:块一起使用。finally块是放置必须执行的所有代码的位置,无论try块是否引发异常。try-finally语句的语法是:try:You do your operations here;......................Due to any exception, this may be s…

工作三个月的总结

想想,我已经工作三个月了,总结一下我的工作经验。 找到了和自己专业相关的工作javaweb方面。虽然是个小公司,我 已经很知足了,对于没有上个好大学的我,真的很满意。 到公司没有几天,我就开始熟悉公司正在做…

关于jrebel碰到的一次问题记录

今天使用jrebel更新gitlab的代码之后,项目总是启动报错。报一个类找不到,但是这个类在整个目录下搜索不到,在target的class目录看了下也没有对应的目录。郁闷了好久,最后同事看了下,在整个target目录搜了下&#xff0c…

java动态生成sdk_android、java制作sdk以及自动生成文档

最近一直在做android开发,昨天经理让我写个接口SDK做个接口文档,以便后面的开发。这让我很焦灼,SDK怎么做?要是只有敲代码还好。可是那个接口文档!!!文档这东西最讨厌了,头都大了后来…

利用 Selenium 自动化 web 测试

Selenium 是一个健壮的工具集合,跨很多平台支持针对基于 web 的应用程序的测试自动化的敏捷开发。它是一个开源的、轻量级的自动化工具,很容易集成到各种项目中,支持多种编程语言,比如 .NET、Perl、Python、Ruby 和 Java™ 编程语…

Python3异常处理

Python3异常处理 一. 简介 在编程过程中为了增加友好性,在程序出现Bug时一般不会直接将错误信息展示给用户,而是提供一个友好的输出提示。 二. 使用 1. 异常基础 常用结构: 1234try:passexcept Exception,ex:pass其他结构: 123456…

php 正则替换style,php正则去除js,class,id,style标签代码

在写xml的时候,文档要求内容里面只要图片和段落就可以了,其他的css,js什么的都不需要。所以,在输出的时候,就要用正则去过滤掉不需要的标签代码。第一种:php正则去除js标签代码。$preg "/$content preg_replace…