>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 27212 个阅读者 刷新本主题
 * 贴子主题:  Java中数字格式化 回复文章 点赞(0)  收藏  
作者:日月光华    发表时间:2020-01-10 18:57:20     消息  查看  搜索  好友  邮件  复制  引用

Java中数字格式化

       在解决实际问题时,对数字的处理是非常普遍的,如数学问题、随机问题、商业货币问题、科学计数问题等。为了应对以上问题,Java提供了处理相关问题的类,包括DecimalFormat类(用于格式化数字)、Math类(为各种数学计算提供了工具方法)、Random类(为Java处理随机数问题提供了分钟方法)、BigInteger类与BigDecimal类(为所有大数字的处理提供了相应的数学运算操作方法)。

下面一一介绍这个数字处理类:

一、数字格式化

           在Java中使用java.text.DecimalFormat格式化数字。

在Java中没有格式化的数据遵循以下原则:

1.如果数据绝对值大于0.001并且小于10000000,Java将以常规小数形式表示。

2.如果数据绝对值小于0.001或者大于10000000,使用科学记数法表示。

       DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字。它可以将一些数字格式化为整数、浮点数、百分数等。通过使用该类可以为要输出的数字加上单位或控制数字的精度。一般情况下可以在实例化DecimalFormat对象时传递数字格式化,也可以通过DecimalFormat类中的applyPattern()方法来实现数字格式化。
              点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小            
package hello;
import java.text.DecimalFormat;  //引入 类
public class DecimalFormatSimpleDemo { //使用实例化对象时设置格式模式
    static public void SimpleFormat(String pattern,double value) {
DecimalFormat myFormat = new DecimalFormat(pattern);
String output = myFormat.format(value);
System.out.println(value+" "+pattern+" "+output);
    } //使用applyPattern()方法对数字进行格式化
static public void UseApplyPatternMethodFormat(String pattern,double value) {
DecimalFormat myFormat = new DecimalFormat();
myFormat.applyPattern(pattern);
System.out.println(value+" "+pattern+" "+myFormat.format(value));
}
public static void main(String[] args) {
SimpleFormat("###,###.###",123456.789);
SimpleFormat("00000000.###kg",123456.789);
SimpleFormat("000000.000",123.78);
UseApplyPatternMethodFormat("#.###%",0.789);
UseApplyPatternMethodFormat("###.##",123456.789);
UseApplyPatternMethodFormat("0.00\u2030",0.789);
}
}

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

从以上两个方法的结果可以看出以“0” 特殊字符构成的模板进行格式化时,当数字某位不存在时,将显示0;而以“#” 特殊字符构成的模板进行格式化操作时,格式化后的数字位数与数字本身的位数一致。

在DecimalFormat类中除了可以设置格式化模式来格式化数字之外,还可以使用一些特殊方法对数字进行格式化设置。


DecimalFormat myFormat = new DecimalFormat(); //实例化DecimalFormat类对象
myFormat.setGroupingSize(2);   //设置数字分组的大小
myFormat.setGroupingUsed(false);   //设置是否支持分组

import java.text.DecimalFormat;
public class DeciamlMethod {
public static void main(String[] args) { // TODO 自动生成的方法存根
DecimalFormat myFormat = new DecimalFormat();
myFormat.setGroupingSize(2); //设置将数字分组为2
String output = myFormat.format(123456.789);
System.out.println("将数字以每两个数字分组  "+output);
myFormat.setGroupingUsed(false); //设置不允许数字分组
String output2 = myFormat.format(123456.789);
System.out.println("不允许数字分组  "+output2);
}
}

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
————————————————
原文链接:https://blog.csdn.net/qq_41045071/article/details/81252051



程序猿的技术大观园:www.javathinker.net

[这个贴子最后由 sunweiqin 在 2020-01-11 21:45:40 重新编辑]
  Java面向对象编程-->变量的作用域和初始化
  JavaWeb开发-->访问数据库(Ⅱ)
  JSP与Hibernate开发-->立即检索和延迟检索策略
  Java网络编程-->基于UDP的数据报和套接字
  精通Spring-->
  Vue3开发-->Vue简介
  从实战角度解读JVM:类加载机制+JVM调优实战+代码优化!
  Java并发编程的总结与思考
  整理收集的一些常用java工具类
  靠一个HashMap的讲解打动了头条面试官
  好消息:孙卫琴老师等直播分享Java分布式架构专题
  Java关键字final、static使用总结
  volatile 与 synchronized 详解
  使用javaNIO实现C/S模式的通信
  Java入门实用代码:集合输出
  Java入门实用代码:将文件内容复制到另一个文件
  Java入门实用代码:向文件写入字符串
  Java入门实用代码:打印平行四边形
  Java入门实用代码:查找字符串最后一次出现的位置
  JAVA日期加减运算
  正则表达式【匹配非字母和数字】
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。