zl程序教程

您现在的位置是:首页 >  Java

当前栏目

Java编程:数据的截尾与舍入

2023-03-15 21:59:17 时间

在将float或double转型为整型值时,总是对该数字执行截尾,如下例:

  1. public class CastingNumbers{  
  2.     public static void main(String[] args){  
  3.         double above = 0.7,below = 0.4;  
  4.         float fabove = 0.7f, fbelow = 0.4f;  
  5.         System.out.println("(int)above: " + (int)above);  
  6.         System.out.println("(int)below: " + (int)below);  
  7.         System.out.println("(int)fabove: " + (int)fabove);  
  8.         System.out.println("(int)fbelow: " + (int)fbelow);  
  9.     }  

输出:

(int)above: 0 
(int)below: 0 
(int)fabove: 0 
(int)fbelow: 0

如果想要得到舍入的结果,就需要使用java.lang.Math中的round()方法:

  1. public class RoundingNumbers{  
  2.     public static void main(String[] args){  
  3.         double above = 0.7,below = 0.4;  
  4.         float fabove = 0.7f, fbelow = 0.4f;  
  5.         System.out.println("Math.round(above): " + Math.round(above));  
  6.         System.out.println("Math.round(below): " + Math.round(below));  
  7.         System.out.println("Math.round(fabove): " + Math.round(fabove));  
  8.         System.out.println("Math.round(fbelow): " + Math.round(fbelow));  
  9.     }  

输出:

Math.round(above): 1 
Math.round(below): 0 
Math.round(fabove): 1 
Math.round(fbelow): 0

由于round()是java.lang的一部分,因此在使用它事不需要额外的导入。

原文链接:http://www.cnblogs.com/eczhou/archive/2011/12/12/2284407.html

【编辑推荐】

  1. Java版A星算法实现步骤
  2. Tomcat运行Java Web内存溢出总结
  3. Java NIO如何处理慢速的连接
  4. Java的标准数据流
  5. Java数据缓存实现的核心机制