import java.math.BigDecimal;

import java.text.DecimalFormat;

public class TestGetInt{

public static void main(String[] args){

double i=2, j=2.1, k=2.5, m=2.9;

System.out.println("舍掉小数取整:Math.floor(2)=" + (int)Math.floor(i));

System.out.println("舍掉小数取整:Math.floor(2.1)=" + (int)Math.floor(j));

System.out.println("舍掉小数取整:Math.floor(2.5)=" + (int)Math.floor(k));

System.out.println("舍掉小数取整:Math.floor(2.9)=" + (int)Math.floor(m));

/* 这段被注释的代码不能正确的实现四舍五入取整

System.out.println("四舍五入取整:Math.rint(2)=" + (int)Math.rint(i));

System.out.println("四舍五入取整:Math.rint(2.1)=" + (int)Math.rint(j));

System.out.println("四舍五入取整:Math.rint(2.5)=" + (int)Math.rint(k));

System.out.println("四舍五入取整:Math.rint(2.9)=" + (int)Math.rint(m));

System.out.println("四舍五入取整:(2)=" + new DecimalFormat("0").format(i));

System.out.println("四舍五入取整:(2.1)=" + new DecimalFormat("0").format(i));

System.out.println("四舍五入取整:(2.5)=" + new DecimalFormat("0").format(i));

System.out.println("四舍五入取整:(2.9)=" + new DecimalFormat("0").format(i));

*/

System.out.println("四舍五入取整:(2)=" + new BigDecimal("2").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("四舍五入取整:(2.1)=" + new BigDecimal("2.1").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("四舍五入取整:(2.5)=" + new BigDecimal("2.5").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("四舍五入取整:(2.9)=" + new BigDecimal("2.9").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("凑整:Math.ceil(2)=" + (int)Math.ceil(i));

System.out.println("凑整:Math.ceil(2.1)=" + (int)Math.ceil(j));

System.out.println("凑整:Math.ceil(2.5)=" + (int)Math.ceil(k));

System.out.println("凑整:Math.ceil(2.9)=" + (int)Math.ceil(m));

System.out.println("舍掉小数取整:Math.floor(-2)=" + (int)Math.floor(-i));

System.out.println("舍掉小数取整:Math.floor(-2.1)=" + (int)Math.floor(-j));

System.out.println("舍掉小数取整:Math.floor(-2.5)=" + (int)Math.floor(-k));

System.out.println("舍掉小数取整:Math.floor(-2.9)=" + (int)Math.floor(-m));

System.out.println("四舍五入取整:(-2)=" + new BigDecimal("-2").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("四舍五入取整:(-2.1)=" + new BigDecimal("-2.1").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("四舍五入取整:(-2.5)=" + new BigDecimal("-2.5").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("四舍五入取整:(-2.9)=" + new BigDecimal("-2.9").setScale(0, BigDecimal.ROUND_HALF_UP));

System.out.println("凑整:Math.ceil(-2)=" + (int)Math.ceil(-i));

System.out.println("凑整:Math.ceil(-2.1)=" + (int)Math.ceil(-j));

System.out.println("凑整:Math.ceil(-2.5)=" + (int)Math.ceil(-k));

System.out.println("凑整:Math.ceil(-2.9)=" + (int)Math.ceil(-m));

}

}

//_____________________________

舍掉小数取整:Math.floor(2)=2

舍掉小数取整:Math.floor(2.1)=2

舍掉小数取整:Math.floor(2.5)=2

舍掉小数取整:Math.floor(2.9)=2

四舍五入取整:(2)=2

四舍五入取整:(2.1)=2

四舍五入取整:(2.5)=3

四舍五入取整:(2.9)=3

凑整:Math.ceil(2)=2

凑整:Math.ceil(2.1)=3

凑整:Math.ceil(2.5)=3

凑整:Math.ceil(2.9)=3

舍掉小数取整:Math.floor(-2)=-2

舍掉小数取整:Math.floor(-2.1)=-3

舍掉小数取整:Math.floor(-2.5)=-3

舍掉小数取整:Math.floor(-2.9)=-3

四舍五入取整:(-2)=-2

四舍五入取整:(-2.1)=-2

四舍五入取整:(-2.5)=-3

四舍五入取整:(-2.9)=-3

凑整:Math.ceil(-2)=-2

凑整:Math.ceil(-2.1)=-2

凑整:Math.ceil(-2.5)=-2

凑整:Math.ceil(-2.9)=-2

===================================================

BigDecimal b = new BigDecimal(9.655 );

//double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println("f1=" + f1);//f1=9.65

BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP);

System.out.println("mData=" + mData);//mData=9.66

public BigDecimal(double val)

将double转换为BigDecimal,后者是double的二进制浮点值准确的十进制表示形式。返回的BigDecimal的标度是使(10scale× val)为整数的最小值。

注:

此构造方法的结果有一定的不可预知性。有人可能认为在 Java 中写入new BigDecimal(0.1)所创建的BigDecimal正好等于 0.1(非标度值 1,其标度为 1),但是它实际上等于 0.1000000000000000055511151231257827021181583404541015625。这是因为 0.1 无法准确地表示为double(或者说对于该情况,不能表示为任何有限长度的二进制小数)。这样,传入到构造方法的值不会正好等于 0.1(虽然表面上等于该值)。

另一方面,String构造方法是完全可预知的:写入new BigDecimal("0.1")将创建一个BigDecimal,它正好等于预期的 0.1。因此,比较而言,通常建议优先使用String构造方法。

当double必须用作BigDecimal的源时,请注意,此构造方法提供了一个准确转换;它不提供与以下操作相同的结果:先使用Double.toString(double)方法,然后使用BigDecimal(String)构造方法,将double转换为String。要获取该结果,请使用staticvalueOf(double)方法。

java四舍五入取整_java取整和java四舍五入方法相关推荐

  1. java运算四舍五入取整_java取整和四舍五入

    java取整和四舍五入 舍掉小数取整:Math.floor(2.0)=2 舍掉小数取整:Math.floor(2.1)=2 舍掉小数取整:Math.floor(2.5)=2 舍掉小数取整:Math.f ...

  2. java的取整_Java取整方法总结

    package com.hit; import java.math.BigDecimal; public class MathRounding { /** * * 项目名称: Java取整方法 * 包 ...

  3. java 取余和取整_Java取整、取余

    参考链接:http://blog..net/wanlixingzhe/article/details/7359809 参考链接:http://bbs..net/topics/390677448(6楼) ...

  4. java除法取整_JAVA取整

    舍掉小数取整:Math.floor(2.0)=2 舍掉小数取整:Math.floor(2.1)=2 舍掉小数取整:Math.floor(2.5)=2 舍掉小数取整:Math.floor(2.9)=2 ...

  5. mysql取余 和 取模_java 取模运算% 实则取余 简述 例子 应用在数据库分库分表

    java 取模运算%  实则取余 简述 例子 应用在数据库分库分表 求模运算与求余运算不同."模"是"Mod"的音译,模运算多应用于程序编写中. Mod的含义为 ...

  6. java date sql和_Java.util.date 与 java.sql.date区别和转换

    1.将java.util.Date转换为java.sql.Date java.sql.Date sd; java.util.Date ud; //initialize the ud such as u ...

  7. java语言编程基础_Java编程基础02——Java语言基础

    1_(常量的概述和使用)* A:什么是常量(constant) 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常 ...

  8. java中string范围_java中long parseLong(String s)方法中string(十进制数字)的范围?

    java中long parseLong(String s)方法中string(十进制数字)的范围? 來源:互聯網  2009-06-19 05:05:28  評論 分類: 電腦/網絡 >> ...

  9. java 获取区间随机数_Java获取随机数的3种方法

    主要介绍了Java获取随机数的3种方法,主要利用random()函数来实现 方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1))例: (int)(1+Math.rando ...

最新文章

  1. 《Credit Risk Scorecard》第五章: Development Database Creation
  2. ServerBootstrap
  3. 实体类里的内部类怎么单独赋值_java你还在用各种setter赋值初始对象吗?用设计模式化简为易...
  4. en55032最新标准下载_欧盟多媒体设备CE认证将使用新标准EN55032
  5. c语言根号11取值两位小数,用C语言将一个数开根号后再取倒数的方法
  6. JAVA网站后台管理系统
  7. 如何选择适合的公共 DNS
  8. 浙大玉泉校区路由器L2TP设置(极路由1s)
  9. 大数据与云计算——Vmware虚拟化技术原理
  10. uiautomatorviewer详解
  11. 电子签约存证及印章管理整体化解决方案
  12. 路由器专用计算机,AUX端口常是通过专用连线与计算机连接,用来对路由器进行基本配置.._简答题试题答案...
  13. 互斥锁深度理解与使用
  14. python使用Axes3D画三维图加入legend图例时报错AttributeError: ‘Poly3DCollection‘ object has no attribute ‘_edgecolo
  15. 2021-06-11 智能汽车和自动驾驶行业人才状态初探
  16. 猎杀对决与服务器连接中断,猎杀对决游戏常见问题汇总_猎杀对决游戏常见问题解决办法...
  17. 三种内存测试软件的使用说明
  18. 图一为下垂控制微电网模型。图二为电压电流双环控制器,图三为有 功和无功曲线
  19. 我的学习思维导图汇总
  20. php 正则 中文英文,php 验证只能输入汉字、英语、数字的正则表达式

热门文章

  1. Python爬虫实战,requests+openpyxl模块,爬取小说数据并保存txt文档(附源码)
  2. WAP2.0移动互联(转)
  3. [问题解决][联想拯救者Y7000笔记本]笔记本开机黑屏,电源灯和键盘灯一闪一闪
  4. 基于JSP的公益网站设计与实现
  5. 申报高新技术企业必须要有自主知识产权吗?
  6. mysql 索引类型 ref_什么是索引?Mysql目前主要的几种索引类型
  7. leetcode:699. 掉落的方块【segmentTree + lazyTag + 区间修改区间查询经典版子】
  8. 劳务员报考建筑八大员报考劳务员建筑工程劳务合同管理的意义
  9. 电商产品设计:后台营销功能模块设计-砍价活动(二)
  10. 中传媒计算机考研复试流程,过来人考研复试经验谈:中传媒应用传播_跨考网...