Java中四舍五入
1、Math中四舍五入的方法
Math.ceil(double a)向上舍入,将数值向上舍入为最为接近的整数,返回值是double类型
Math.floor(double a)向下舍入,将数值向下舍入为最为接近的整数,返回值是double类型
Math.round(float a)标准舍入,将数值四舍五入为最为接近的整数,返回值是int类型
Math.round(double a)标准舍入,将数值四舍五入为最为接近的整数,返回值是long类型
2、Math中random生成随机数
Math.random()生成大于等于0,小于1的随机数
3、Random类生成随机数
两种构造方式:第一种使用默认的种子(当前时间作为种子),另一个使用long型整数为种子,Random类可以生成布尔型、浮点类型、整数等类型的随机数,还可以指定生成随机数的范围
4、BigDecimal处理小数
两种构造方式:第一种直接value写数字的值,第二种用String
import java.math.BigDecimal;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class TestNumber {
public static void main(String[] args){
//ceil返回大的值
System.out.println(Math.ceil(-10.1)); //-10.0
System.out.println(Math.ceil(10.7)); //11.0
System.out.println(Math.ceil(-0.7)); //-0.0
System.out.println(Math.ceil(0.0)); //0.0
System.out.println(Math.ceil(-0.0)); //-0.0
System.out.println(Math.ceil(-1.7)); //-1.0
//floor返回小的值
System.out.println(Math.floor(-10.1)); //-11.0
System.out.println(Math.floor(10.7)); //10.0
System.out.println(Math.floor(-0.7)); //-1.0
System.out.println(Math.floor(0.0)); //0.0
System.out.println(Math.floor(-0.0)); //-0.0
System.out.println(Math.floor(-1.7)); //-2.0
//round四舍五入,float返回int,double返回long
System.out.println(Math.round(10.5)); //11
System.out.println(Math.round(-10.5)); //-10
//Math生成随机数
System.out.println(Math.random());
//Random类生成随机数
Random rand=new Random();
System.out.println(rand.nextBoolean());
System.out.println(rand.nextDouble());
System.out.println(rand.nextInt());
System.out.println(rand.nextInt(10));
//Random使用当前时间作为Random的种子
Random rand2 = new Random(System.currentTimeMillis());
System.out.println(rand2.nextBoolean());
System.out.println(rand2.nextDouble());
System.out.println(rand2.nextInt());
System.out.println(rand2.nextInt(10));
System.out.println(rand2.nextInt(5));
//ThreadLocalRandom
ThreadLocalRandom rand3 = ThreadLocalRandom.current();
System.out.println(rand3.nextInt(5,10));
//BigDecimal
System.out.println(0.8 - 0.7); //0.10000000000000009
BigDecimal a1=new BigDecimal(0.1);
BigDecimal b1=new BigDecimal(0.9);
BigDecimal c1=a1.add(b1);
System.out.println("a1.add(b1)="+c1); //a1.add(b1)=1.0000000000000000277555756156289135105907917022705078125
BigDecimal a2=new BigDecimal("0.1");
BigDecimal b2=new BigDecimal("0.9");
BigDecimal c2=a2.add(b2);
System.out.println("a2="+a2); //a2=0.1
System.out.println("a2.add(b2)="+c2); //a2.add(b2)=1.0
}
}
Java中四舍五入的更多相关文章
- Java中四舍五入保留两位小数
Java中四舍五入保留两位小数 方法一 四舍五入 double f = 3.15; long res = Math.round(f); #结果 res = 3 保留两位小数 double f = 3. ...
- java中四舍五入——double转BigDecimal的精度损失问题
代码: double d = -123456789012345.3426;//5898895455898954895989; NumberFormat nf = new DecimalFormat(& ...
- java中进行四舍五入
在oracle中有一个很好的函数进行四舍五入,round(), select round(111112.23248987,6) from dual; 但是java的Number本身不提供四舍五入的方法 ...
- Java中取整和四舍五入
import java.math.BigDecimal; import java.text.DecimalFormat; public class TestGetInt{ public stati ...
- java中double变量保留小数问题
(转载自玄影池扁舟) 做java项目的时候可能经常会遇到double类型变量保留小数的问题,下面便把我的经验做个简短的总结: java中double类型变量保留小数问题大体分两种情况: (一):小数点 ...
- Java 中浮点数---------BigDecimal和double(初探)
为什么要使用 bigdecimal? 借用<Effactive Java>这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了 ...
- 关于java中Double类型的运算精度问题
标题 在Java中实现浮点数的精确计算 AYellow(原作) 修改 关键字 Java 浮点数 精确计算 问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...
- java中常用的工具类(二)
下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- Java中必须了解的常用类
1.Java的包装类 基本数据类型我们都很熟悉,例如:int.float.double.boolean.char等,基本数据类型不具备对象的特征,不能调用方法,一般能实现的功能比较简单,为了让基本数据 ...
随机推荐
- Python面试题_中级版
Python 面试题 1.Python是如何进行内存管理的 对象引用机制.垃圾回收机制.内存池机制 1.1对象引用机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数. 引 ...
- Django 配置 Mysql
先安装mysqlclient pip install mysqlclient sttings中的 DATABASES = { 'default': { 'ENGINE': 'django.db.bac ...
- JavaScrip_12.23
笔记系列,零散的知识点,准备以后复习整理使用 JavaScrip - 事件DOM绑定[将函数添加到一个元素对象的属性中] 1.事件 鼠标.键盘.操作等:所有的GUI都有 onclick(单击事件) 例 ...
- CSP-J 2020题解
CSP-J 2020题解 本次考试还是很有用的,至少把我浇了一盆冷水. 当使用民间数据自测的时候,我就自闭了. 估分是320,但有些比较低级的错误直接少掉80. 而且这套题应该上350才正常吧,也不是 ...
- webbug3.0菜鸟笔记1
渗透学习笔记--基础篇--sql注入(字符型)http://bbs.51cto.com/viewthread.php?tid=1148930 渗透学习笔记--基础篇--sql注入(数字型)http:/ ...
- [python应用]python简单图片抓取
前言 emmmm python简单图片抓取 1 import requests 2 import threading 3 import queue 4 from subprocess import P ...
- 面试阿里,腾讯,字节跳动90%都会被问到的Spring中的循环依赖
前言 Spring中的循环依赖一直是Spring中一个很重要的话题,一方面是因为源码中为了解决循环依赖做了很多处理,另外一方面是因为面试的时候,如果问到Spring中比较高阶的问题,那么循环依赖必定逃 ...
- 「CERC2017」Donut Drone
题目链接 洛谷P4739 题目翻译: 你正在模拟无人机探索一个不稳定的环状行星的过程.技术上说,无人机正在穿过一个环形网格---一个在两维上都首尾环绕在一起的矩形网格.格子的行号从上到下依次编号为\( ...
- pip更新报错问题
pip更新错误如下: WARNING: You are using pip version 20.1.1; however, version 20.2 is available. You should ...
- Java蓝桥杯——排列组合
排列组合介绍 排列,就是指从给定n个数的元素中取出指定m个数的元素,进行排序. 组合,则是指从给定n个数的元素中仅仅取出指定m个数的元素,不考虑排序. 全排列(permutation) 以数字为例,全 ...