java的四舍五入算法

粗力度的四舍五入为整数

 1 package math;
 2
 3 public class MathRoundTest {
 4     /**
 5      * Math类中提供了三个与取整有关的方法:ceil,floor,round,
 6      * 这些方法的作用于它们的英文名称的含义相对应,例如:ceil的英文意义是天花板,该方法就表示向上取整,
 7      * Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11;floor的英文是地板,
 8      * 该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12;
 9      * 最难掌握的是round方法,他表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,
10      * 所以,Math.round(11.5)的结果是12,Math.round(-11.5)的结果为-11.Math.round( )符合这样的规律:
11      * 小数点后大于5全部加,等于5正数加,小于5全不加。
12      */
13     public static void main(String[] args) {
14         System.out.println("小数点后第一位=5");
15         System.out.println("正数:Math.round(11.5)=" + Math.round(11.5));
16         System.out.println("负数:Math.round(-11.5)=" + Math.round(-11.5));
17         System.out.println();
18
19         System.out.println("小数点后第一位<5");
20         System.out.println("正数:Math.round(11.46)=" + Math.round(11.46));
21         System.out.println("负数:Math.round(-11.46)=" + Math.round(-11.46));
22         System.out.println();
23
24         System.out.println("小数点后第一位>5");
25         System.out.println("正数:Math.round(11.68)=" + Math.round(11.68));
26         System.out.println("负数:Math.round(-11.68)=" + Math.round(-11.68));
27         /**
28          * 运行结果:
29             1、小数点后第一位=5
30             2、正数:Math.round(11.5)=12
31             3、负数:Math.round(-11.5)=-11
32             4、
33             5、小数点后第一位<5
34             6、正数:Math.round(11.46)=11
35             7、负数:Math.round(-11.46)=-11
36             8、
37             9、小数点后第一位>5
38             10、正数:Math.round(11.68)=12
39             11、负数:Math.round(-11.68)=-12
40          */
41         /**
42          * 1、参数的小数点后第一位<5,运算结果为参数整数部分。
43            2、参数的小数点后第一位>5,运算结果为参数整数部分绝对值+1,符号(即正负)不变。
44            3、参数的小数点后第一位=5,正数运算结果为整数部分+1,负数运算结果为整数部分。
45          */
46     }
47
48 } 

View Code

 

时间: 2024-10-06 19:12:50

java的四舍五入算法的相关文章

Java实现快速排序算法(Quicktsort)

 这篇文章主要介绍了Java实现快速排序算法(Quicktsort),有需要的朋友可以参考一下 快速排序算法介绍 快速排序和归并排序都使用分治法来设计算法,区别在于归并排序把数组分为两个基本等长的子数组,分别排好序之后还要进行归并(Merge)操作,而快速排序拆分子数组的时候显得更有艺术,取一个基准元素,拆分之后基准元素左边的元素都比基准元素小,右边的元素都不小于基准元素,这样只需要分别对两个子数组排序即可,不再像归并排序一样需要归并操作.基准元素的选取对算法的效率影响很大,最好的情况是两个子数

使用java实现LIS算法,出操队形的问题_java

假设有序列:2,1,3,5,求一个最长上升子序列就是2,3,5或者1,3,5,长度都为3. LIS算法的思想是: 设存在序列a. ① 如果只有一个元素,那么最长上升子序列的长度为1: ② 如果有两个元素,那么如果a[1]>a[0],则最长上升子序列的长度为2,a[1]为该最长上升子序列的最后一个元素;若a[1]<a[0],则最长上升子序列的长度为1,a[0]和a[1]均为  其最长上升子序列的最后一个元素. ③ 如果由三个元素,那么如果a[2]>a[0],a[2]>a[1],则a[

java算法-java求教,算法竞赛入门经典 3.4 最长回文子串

问题描述 java求教,算法竞赛入门经典 3.4 最长回文子串 java新手求教,关键是怎么保存s[i]在buf中的位置,谢谢 解决方案 string longestPalindromeDP(string s) { int n = s.length(); int longestBegin = 0; int maxLen = 1; bool table[1000][1000] = {false}; for (int i = 0; i < n; i++) { table[i][i] = true;

java BigDecimal四舍五入结果错误的bug

问题描述 java BigDecimal四舍五入结果错误的bug for (double i = 511.55; i < 2050.55; i++) { BigDecimal bd = new BigDecimal(i); bd =bd.setScale(1, BigDecimal.ROUND_HALF_UP); System.out.println(bd.doubleValue()); } 512-2048 之内的值 四舍五入不对 全部舍位了.没有进位 是不是电脑的问题? ROUND_HALF

算法 数据结构 java-以下java的最短路径算法应该如何实现

问题描述 以下java的最短路径算法应该如何实现 不知道怎么用额. 解决方案 http://blog.csdn.net/javaman_chen/article/details/8254309 解决方案二: http://download.csdn.net/detail/gareth_liao/5100648 解决方案三: 谢谢回复 解决方案四: 最短路径算法(java实现)

java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示。

问题描述 java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示. 用java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示. 解决方案 数组可以表示很多数的-你说,用一个数表示啥意思?? 解决方案二: 你应该是想要下面的实现.如果有用请采纳. import java.util.ArrayList; import java.util.List; public class TestMain { public static void main(String

java数据结构和算法 22只鞋子,拿多少次可以拿一双

问题描述 java数据结构和算法 22只鞋子,拿多少次可以拿一双 22只鞋子 5双运动鞋,4双凉鞋,2双礼服鞋放在看不到的盒子里, 一次拿一只 最少拿多少次可以拿一双鞋子(左右脚也要对应) 解决方案 假设已经拿了5只左脚的运动鞋,4只凉鞋,2只礼服鞋,那么再拿一只,一定可以组成一双鞋,所以是12次 解决方案二: 应该是12次,不信的话你在问其他人. 解决方案三: 最少几次?2最多几次?12.....

java实现归并排序算法_java

归并排序就是将未排序的数组进行对半划分成两个数组,划分后的数组只有原来数组的一半数量的元素.然后在对划分的两个数组再继续划分,循环此操作,直到划分的数组中只有一个元素时停止划分,然后对于划分完成的数组进行归并排序操作.将两个已经划分完成的数组合并成一个有序的数组,直到最后合并成一个包含所有元素的数组,合并排序操作完成.下面以图形来演示下归并排序的过程. 假设有一个未排序数组:{3,2,4,1},下面为数组的划分过程,先将数组对半划分为{3,2}和{4,1}两个数组.然后在对这两个数组进行划分最后

Java常用排序算法及性能测试集合_java

现在再回过头理解,结合自己的体会, 选用最佳的方式描述这些算法,以方便理解它们的工作原理和程序设计技巧.本文适合做java面试准备的材料阅读. 先附上一个测试报告: Array length: 20000bubbleSort : 766 msbubbleSortAdvanced : 662 msbubbleSortAdvanced2 : 647 msselectSort : 252 msinsertSort : 218 msinsertSortAdvanced : 127 msinsertSor