博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数字操作类
阅读量:5284 次
发布时间:2019-06-14

本文共 3582 字,大约阅读时间需要 11 分钟。

  数字操作类是针对数字进行处理,可以使用内置数学类,完成。也可以生产随机数

Math类

  java.lang.Math类是整个的JDK里面唯一一个与数学计算有关的程序类。着里面提供有一些基础的数学函数,这个类中的所有方法都使用了static进行定义,所有的方法都可以通过类名称直接调用,而此类中有一个round需要特别注意

    四舍五入方法定义:public static long round(double a)

范例:观察round()方法

1 package cn.Tony.demo;2 3 public class TestDemo {4     public static void main(String[] args) throws Exception {5         double num=151516.56515;6         System.out.println(Math.round(num));7     }8 }

  如果直接使用round方法处理的话默认的处理原则就是将小数位直接进位,

范例:继续观察round的数据

1 package cn.Tony.demo; 2  3 public class TestDemo { 4     public static void main(String[] args) throws Exception { 5         System.out.println(Math.round(15.51));//16 6         System.out.println(Math.round(15.5));//16 7         //如果负数小数没大于0.5都不进位 8         System.out.println(Math.round(-15.5));//-15 9         System.out.println(Math.round(-15.51));//-1610     }11 }

  我希望可以准确的保存小数位处理

1 package cn.Tony.demo; 2  3 class MyMath{ 4     /** 5      * 进行数据的四舍五入操作 6      * @param num    表示原始操作数据 7      * @param scale    表示保留的小数位数 8      * @return    已经正确四舍五入后的内容 9      */10     public static double round(double num,int scale) {11         return Math.round(num*Math.pow(10, scale))/Math.pow(10, scale);12     }13 }14 public class TestDemo {15     public static void main(String[] args) throws Exception {16          System.out.println(MyMath.round(1823.2567,2));17     }18 }

  这种四舍五入的操作是最简单的处理模式。以后的开发一定会是使用到

随机类:Random

  在很多语言里面都支持随机数子的产生,那么在Java里面使用java.util.Random类来实现这种随机数的处理;

范例:产生随机数

1 package cn.Tony.demo; 2  3 import java.util.Random; 4  5 public class TestDemo { 6     public static void main(String[] args) throws Exception { 7         Random rand=new Random(); 8         for(int x=0;x<10;x++) {    //100表示最大值,数据的范围是0到99 9             System.out.println(rand.nextInt(100)+".");10         }11     }12 }

  在许多的网站上的英文随机验证码实际上就可以通过此类模式完成,

1 package cn.Tony.demo; 2  3 import java.util.Random; 4 public class TestDemo { 5     public static void main(String[] args) throws Exception { 6         char data[]=new char[] {'a','b','c','d'}; 7         Random rand=new Random(); 8         for(int x=0;x<3;x++) {     9             System.out.println(data[rand.nextInt(data.length)]+".");10         }11     }12 }

  如果是中文验证码也很简单,写一个中文验证码库。

大数字的操作类:

  一般的开发中使用的数据都包含在给定的数据之中,但是有时候数据真的很大,超过了预期的范围。原始程序中可以使用字符串解决。如果要进行数学计算,则取出每一位进行手工的处理。但是这种操作很麻烦。所以java.math包里面提供有两个类:BigInteger BigDecimal。这两个类都属于Number类,

范例:观察BigInteger操作

 

1 package cn.Tony.demo; 2 import java.math.BigInteger; 3 public class TestDemo { 4     public static void main(String[] args) throws Exception { 5         BigInteger bigA=new BigInteger("46515615615151111111"); 6         BigInteger bigB=new BigInteger("1161561"); 7         System.out.println("加法计算:"+bigA.add(bigB)); 8         System.out.println("减法计算:"+bigA.subtract(bigB)); 9         System.out.println("乘法计算:"+bigA.multiply(bigB));10         System.out.println("除法计算:"+bigA.divide(bigB));11         BigInteger result[]=bigA.divideAndRemainder(bigB);12         System.out.println("商"+result[0]+",余数"+result[1]);13     }14 }

 

范例:大小数BigDecimal

 

 

1 package cn.Tony.demo; 2 import java.math.BigDecimal; 3 class MyMath{ 4     public static double round(double num,int scale) { 5         return new BigDecimal(num).divide(new BigDecimal(1),scale,BigDecimal.ROUND_HALF_UP).doubleValue(); 6     } 7 } 8 public class TestDemo { 9     public static void main(String[] args) throws Exception {10         System.out.println(MyMath.round(16516.561, 2));11     }12 }

 

  关于四舍五入的处理实际上有两类做法。

  这些给定的默认的数学操作的功能都十分有限,在开法里面如果你真的用到复杂的逻辑,你要找其他的开发包去做。

转载于:https://www.cnblogs.com/Tony98/p/10497024.html

你可能感兴趣的文章
51nod1076 (边双连通)
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
[Kaggle] Sentiment Analysis on Movie Reviews
查看>>
价值观
查看>>
mongodb命令----批量更改文档字段名
查看>>
国外常见互联网盈利创新模式
查看>>
android:scaleType属性
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Linux中防火墙centos
查看>>
[JS]递归对象或数组
查看>>
linux sed命令
查看>>
程序存储问题
查看>>
优雅地书写回调——Promise
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>