java数字处理_Java数字处理类(上)
数字格式化:
数字格式化在解决实际问题是非常普遍的,如表示某超市的商品价格,需要保留两位有效数字。
java主要对浮点型数据进行数字格式化操作,其中浮点型数据包括double型和float型数据,
在java中使用java.text.DecimalFormat格式化数字。
在java中没有格式化数据循环以下原则
如果数据绝对值大于0.001并且小于10000000,java将以常规小数形式表示
如果数据绝对值小于0.001并且大于10000000,使用科学记数法表示。
DecimalFormat是NumberFormat的一个子类,用于格式化十进制数字。
它可以将一些数字格式化为整数、浮点数、百分数等。通过使用该类可以为要输出的数字加上单位或控制数字的精度。
一般情况下可以在实例化DecimalFormat对象时传递数字格式化,也可以通过DecimalFormat类中的applyPattern()
方法来实现数字格式化
下面这组代码是在类中分别定义SimpleFormat()方法和UseApplyPatternMethodFormat() 方法实现两种格式化数字的方式
public class DecimalFormatSimpleDemo {
//实例化DecimalFormat对象
static public void SimgleFormat(String pattern,double value){
//实例化DecimalFormat对象
DecimalFormat myFormat=new DecimalFormat(pattern);
String output=myFormat.format(value);//将数字进行格式化
System.out.println(value+""+pattern+""+output);
}
static public void UserApplyPatternMethodFormat(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) {
SimgleFormat("###,###.###", 123456.789);
SimgleFormat("00000000.###kg",12346.789);
//按照格式模板格式化数字,不存在的位以0显示。
SimgleFormat("000000.000",123.78);
UserApplyPatternMethodFormat("#.###%",0.789);
//将小鼠点后格式化两位
UserApplyPatternMethodFormat("###.##",123456.789);
//将数字转化为千分数形式
UserApplyPatternMethodFormat("0.00\u2030",0.789);
}
}
执行结果:
123456.789###,###.###123,456.789
12346.78900000000.###kg00012346.789kg
123.78000000.000000123.780
0.789#.###%78.9%
123456.789###.##123456.79
0.7890.00‰789.00‰
数字运算
Math:在math类中提供了众多数学函数方法,主要包括三角函数方法、指数函数方法、取整函数方法、取最大值,常用运算方法,运算函数的方法,以及平均值函数方法,这些方法都被定位static形式
public class Mathematical_operation_method_三角函数 {
public static void main(String[] args) {
//取75°的弦
System.out.println("75度的正玄机值:"+Math.sin(Math.PI/2));
//取75°余弦
System.out.println("75度的余弦值:"+Math.cos(75));
//取75°正切
System.out.println("75度的正切"+Math.tan(Math.PI/3));
//取75°的平方根与商的反正弦
System.out.println("75的平方根与商的反弦值"+Math.asin(Math.sqrt(75)/75));
//取75°的平方根与商的反余弦
System.out.println("75的平方根与商的反弦值"+Math.acos(Math.sqrt(75)/75));
//取75°的反正切值
System.out.println("75的反正切值"+Math.atan(1));
//取75°的弧度值
System.out.println("75°的弧度值"+Math.toRadians(75.0));
//取Π/2的角度
System.out.println("Π的角度值"+Math.toDegrees(Math.PI/2));
}
}
执行结果:
75度的正玄机值:1.0
75度的余弦值:0.9217512697247493
75度的正切1.7320508075688767
75的平方根与商7853981633974483
75°的弧度值1.3089969389957472
Π的角度值90.0
指数函数方法:指数运算包括求方根、取对数以及求N次方的运算。实现指数函数运算
public class Specifiedfunction_指定函数 {
public static void main(String[] args) {
//求e的平方值
System.out.println("e的平方值"+Math.log(2));
//取以10为底2的对数
System.out.println("以10为底2的数值:"+Math.log10(2));
//取4的平方根
System.out.println("4的平方根植"+Math.sqrt(4));
//取8的立方根值
System.out.println("8的立方根值"+Math.cbrt(8));
//取2的2次方值
System.out.println("2的2次方值"+Math.pow(2,2));
}
}
执行结果:
e的平方值0.6931471805599453
以10为底2的数值:0.3010299956639812
4的平方根植2.0
8的立方根值2.0
2的2次方值4.0
在具体的问题中,取整数操作使用也很普通,所以java在Math类仲添加了数字取整方法。
public class Obtain_获取整函数的方法 {
public static void main(String[] args) {
//返回第一个大于等于参数的参数的整数
System.out.println("使用ceil()方法取整:"+Math.ceil(5.2));
//返回第一个小于等于参数的整数
System.out.println("使用floor()方法取整"+Math.floor(2.5));
//返回与参数最接近的整数
System.out.println("使用rint()方法取整"+Math.rint(2.7));
//将参数上加0.5后返回最近接近的整数
System.out.println("使用round()方法取整"+Math.round(2.5));
}
}
执行结果:
使用ceil()方法取整:6.0
使用floor()方法取整2.0
使用rint()方法取整3.0
使用round()方法取整3
如何取最大值、最小值、绝对值函数
在程序中最常用的方法最大值、最小值、绝对值等,在Math类中包括这些操作方法如下:、
public static double max(double a,double b);取a与b之间的最大值。
public static int min(double a,double b);取a与b之间的最小值,参数为整数型
public static long min(double a,double b);取a与b之间的最小值,参数为长整型
public static float min(double a,double b);取a与b之间的最小值,参数为浮点型
public static double min(double a,double b);取a与b之间的最小值,参数为双精度
public static int abs(int a):返回整型参数的绝对值.
public static float abs(float a):返回浮点型参数绝对值
public static double abs(double a):返回双精度参数的绝对值。
下面就是就用一组代码来求绝对值
public class Max_Min_Abstract绝对值 {
public static void main(String[] args) {
System.out.println("4和8较大者"+Math.max(4,8));
System.out.println("4和4.4较小者"+Math.min(4, 4.4));
System.out.println("-7的绝对值:"+Math.abs(-7));//取参数的绝对值
}
}
执行结果:
4和8较大者8
4和4.4较小者4.0
-7的绝对值:7
随机数:
在实际开发中产生随机数的使用很普遍的,所以在程序中进行产生随机数操作很重要。
java中主要提供了两种产生随机数,分别为:math类的random()方法和Random类提供的产生
各种数据类型随机数的方法。
Math.Random方法
在Math类中存在一个Random()方法,用于产生随机数字,这个方法默认生成等于0.0且小于1.0的double型随机数,即0<=Math.random()<1.0,虽然Math.Random()方法只可以产生0~1之间的double型数字,其实只要在Math.random()语句上稍加处理,就可以使用这个方法产生任意范围随机数。
public class Math_random_随机数方法 {
public static int GetEvenNum(double num1,double num2){
int s=(int)num1+(int)(Math.random()*(num2-num1));
if(s%2==0){
return s;
}else{
return s+1;
}
}
public static void main(String[] args) {
System.out.println("任意一个2-32之间的偶数:"+GetEvenNum(2,32));
}
}
执行结果:
任意一个2-32之间的偶数:26
java数字处理_Java数字处理类(上)相关推荐
- java字符_Java String 类
Java String 类 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 创建字符串 创建字符串最简单的方式如下: St ...
- java object[][]_Java Object类
首页 > 基础教程 > 常用类 > 常用 Object类 Java Object类 Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类.Object类是Java ...
- java常见_Java 常用类
一Object 老祖宗 java.lang.Object 1.所有的类直接或者间接继承父类Java认为所有的对象都具备一些基本的共性内容这些内容可以不断的向上抽取最终就抽取到了一个最顶层的类中(Obj ...
- java程序设计_Java程序设计-类和对象(笔记)
1)类(Class)和对象(Object)是面向对象的核心概念. 类是对一类事物的描述,是抽象的.概念上的定义 对象是实际存在的该类事物的每个个体,因而也称为实例(instance). 2)" ...
- java属性_Java Properties 类
Java Properties 类 Properties 继承于 Hashtable.表示一个持久的属性集.属性列表中每个键及其对应值都是一个字符串. Properties 类被许多 Java 类使用 ...
- java 获取_java获取类的信息
packagecom.test;importjava.lang.reflect.Constructor;importjava.lang.reflect.Field;importjava.lang.re ...
- java 四舍五入_Java常用类
每个人的心里,都藏着一个了不起的自己,只要你不颓废,不消极,一直悄悄酝酿着乐观,培养着豁达,坚持着善良,只要在路上,就没有到达不了的远方! BigInteger 在Java中,整型最大范围是64位的l ...
- java物品类_Java:类中的所有东西都是静态的 – 这是合理的吗?
我只是想知道我所做的事情是不是很糟糕的设计. 我有一个ArrayList的东西.我需要这个列表永远存在.我只需要有一个这样的清单.我也有一些方法可以与这个列表进行交互.因此,我让一切都变得静止. 问题 ...
- java射击_java射击类游戏
[实例简介] java射击类小游戏,适合初学者学习,对java的综合应用 [实例截图] [核心代码] d383e3a0-dbab-4bcd-8bd2-3a45e4d25b49 └── Game ├── ...
最新文章
- 为什么要使用Retrofit封装OkHttp,而不单独使用OkHttp?
- mysql 附近3公里的_mysql搜寻附近N公里内数据的实例
- 参展神器| 算法告诉你优先参加哪个会展
- pandas数据存储于读取
- Cartographor定位-shell脚本:不停拉起死掉的程序和脚本
- Mybatis 入门之resultMap与resultType讲解实例
- Java基础篇3——流程控制
- java上下左中右的布局面板_JAVA GUI重要知识点学习心得
- 熬了整整30天,java递归阶乘求和
- ceph集群报错:HEALTH_ERR 1 pgs inconsistent; 1 scrub errors
- 计蒜客 16876 韩梅梅的抽象画
- 【易实战】SpringCloud Greenwich架构概览深度详解
- MATLAB的输入与输出
- 转:面对失败,我们只是固执地想证明之前的决策是对的
- windows10装detectron2-0.6,并运行fasterrcnn
- 这个地方沸腾,高手争雄,至尊大决战,从天上杀到地下,又从地上打到云霄上!
- 关于音视频测试的一点建议
- 不要上当,显示器用绿色背景有害视力
- Redis是什么?Redis有哪些数据类型?Redis怎么集群?
- 日语 罗马拼音 输入法规则