java的四种取整方法

java 中取整操作提供了四种方法:分别是:

public static double ceil(double a)//向上取整

 public static double floor(double a)//向下取整

 public static long round(double a)//四舍五入取整

 public static double rint(double a)//最近取整


 

第一种:ceil是天花板的意思,表示向上取整。   测试:

System.out.println(Math.ceil(1.01));

System.out.println(Math.ceil(-1.01));

System.out.println(Math.ceil(1.5));

System.out.println(Math.ceil(-1.5));


 

输出结果:

2.0

-1.0

2.0

-1.0


 

第二种:floor是地板的意思,表示向下取整。   测试:

System.out.println(Math.floor(1.01));

System.out.println(Math.floor(-1.01));

System.out.println(Math.floor(1.5));

System.out.println(Math.floor(-1.5));


 

输出:

1.0

-2.0

1.0

-2.0


 

第三种:round执行的就是数学上的四舍五入运行。   查看它源码可知其与floor方法的关系:

public static long round(double a) {

return (long)floor(a + 0.5d);

    }


 

测试:

System.out.println(Math.round(-1.5));

System.out.println(Math.round(1.5));

结果:

-1

2


 

第四种:最有意思的,返回最接近参数的整数,如果有2个数同样接近,则返回偶数的那个。它有两个特殊的情况:

1)如果参数本身是整数,则返回本身。

2)如果不是数字或无穷大或正负0,则结果为其本身。

Returns the double value that is closest in value to the argument and is equal to a mathematical integer. If two double values that are mathematical integers are equally close, the result is the integer value that is even. Special cases:  
If the argument value is already equal to a mathematical integer, then the result is the same as the argument.

If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument.

Parameters:  a a double value.

Returns:  the closest floating-point value to a that is equal to a mathematical integer. 
测试:

System.out.println(Math.rint(-1.5));

System.out.println(Math.rint(1.5));

System.out.println(Math.rint(-2.5));

System.out.println(Math.rint(2.5));

结果:

-2.0

2.0

-2.0

2.0


 

时间: 2024-10-08 07:55:32

java的四种取整方法的相关文章

C语言取整方法总结

C语言有以下几种取整方法: 1.   直接赋值给整数变量 int i = 3.5; 或 i = (int) 3.5; 这种方法采用的是舍去小数部分. 2.整数除法运算符' / '取整 ' / '本身就有取整功能(int / int),但是整数除法对负数的取整结果和使用的C编译器有关. 3.使用floor函数 floor(x)返回的是小于或等于x的最大整数.如: floor(3.5) = 3 floor(-3.5) = -4 4.使用ceil函数 ceil(x)返回的是大于x的最小整数.如: ce

Java的四种引用类型

Java中有四种引用类型:强引用.软引用.弱引用.虚引用.--应该是从1.2版本开始添加的. 这个概念是与垃圾回收有关的. 如果你不知道这几个概念,那你用的肯定都是强引用.例如String str = new String(); 这个str到 new String() 的引用类型就是强引用. 那什么是弱引用呢?先看一段代码: 1 package cn.larry.pojo; 2 3 public final class Product { 4 private String name; 5 6 p

Java的四种引用源代码例子

Java的四种引用源代码例子 不解释,直接上代码,千言万语顶不住一行代码. package com.apkkids.javalanguage; import java.lang.ref.PhantomReference; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.lang.ref.WeakReference

iOS中常用的四种数据持久化方法简介

iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults standardUserDefaults]就够用了 @interface User : NSObject <NSCoding>@property (nonatomic, assign) NSInteger userID;@property (nonatomic,

java中四种引用类型

java中四种引用类型  今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混.后来在网上查资料,感觉收获颇多,现记录如下. 对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地

Scrapy里Selectors 四种基础的方法

在Scrapy里面,Selectors 有四种基础的方法xpath():返回一系列的selectors,每一个select表示一个xpath参数表达式选择的节点css():返回一系列的selectors,每一个select表示一个css参数表达式选择的节点extract():返回一个unicode字符串,为选中的数据re():返回一串一个unicode字符串,为使用正则表达式抓取出来的内容 /html/head/title: 选择HTML文档<head>元素下面的<title> 标

产品经理常用的四种需求收集方法简述

A 客户访谈 客户访谈是通过面对面的交流方式了解具体客户对产品.对流程的需求.观点和看法. 客户访谈的内容可以包括: 1.了解哪些需求对客户比较重要. 2.就了解到的一些需求请客户协助进行优先排序. 3.就问题改进建议的初步想法与客户进行讨论,确认是否能够满足客户需求. 客户访谈的优点包括: 1.由于是面对面的交流,因此在调查内容上更加灵活,可以随时根据问答状况就一些内容进行深入讨论,获得更多的客户感受. 2.客户可以再调查人的协助下,进行一些较为复杂的问卷调查. 3.客户访谈方式的适用面广,可

四种数据保持方法

IOS 四种保存数据的方式 (2013-04-02 15:04:53) 转载▼ 在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加 流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍?一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提 供encodeWithCoder:和initWithCoder:方法.前?一个方法告诉系统怎么对对象进行编

笔试算法题(53):四种基本排序方法的性能特征(Selection,Insertion,Bubble,Shell)

四种基本算法概述: 基本排序:选择,插入,冒泡,希尔.上述算法适用于小规模文件和特殊文件的排序,并不适合大规模随机排序的文件.前三种算法的执行时间与N2成正比,希尔算法的执行时间与N3/2(或更快)成正比: 前三种算法在平均,最坏情况下都是N2,而且都不需要额外的内存:所以尽管他们的运行时间只相差常数倍,但运行方式不同: 对于已经就序的序列而言,插入排序和冒泡排序的运行时间都是O(N),但是选择排序的时间仍旧是O(N^2): 因为Insertion和Bubble都是相邻项间的比较交换,所以不会出