精华内容
下载资源
问答
  • java除法 java运算符 java运算特殊情况

    千次阅读 2018-07-16 14:32:40
    java除法运算的特殊情况: System.out.println(5/2); System.out.println(5.0/2); System.out.println(5/2.0); System.out.println(5.0/0); System.out.println(-5.0/0); System.out.println(0.0/0);...

    java除法运算的特殊情况:

        System.out.println(5/2);
        System.out.println(5.0/2);
        System.out.println(5/2.0);
        System.out.println(5.0/0);
        System.out.println(-5.0/0);
        System.out.println(0.0/0);
        System.out.println(5/0);

    输出结果为:
    2
    2.5
    2.5
    Infinity(正无穷大)
    -Infinity(负无穷大)
    NaN (非数字)
    Exception in thread “main” java.lang.ArithmeticException: / by zero (异常)
    现在来分析原因:
    2个整数相除结果会取整,除数和余数之中有一个为小数,则结果也是小数,当被除数为0时,有三种情况:
    1. 除数为整数时:发生异常
    2. 除数为小数时:Infinity(正无穷大)或-Infinity(负无穷大)
    3. 除数为0.0时:NaN (非数字)

    展开全文
  • Java除法运算(保留小数)

    万次阅读 多人点赞 2018-04-17 14:29:03
    编程的人都知道,java中的“/”、“%”运算,其中前者为取整,... * TODO 除法运算,保留小数 * @author 袁忠明 * @date 2018-4-17下午2:24:48 * @param a 被除数 * @param b 除数 * @return 商 */ pu...

    编程的人都知道,java中的“/”、“%”运算,其中前者为取整,后者取余数。那么有没有快捷的运算方法取正常的运算结果呢?

    查了资料,发现很简单。代码如下:

    	/**
    	 * TODO 除法运算,保留小数
    	 * @author 袁忠明
    	 * @date 2018-4-17下午2:24:48
    	 * @param a 被除数
    	 * @param b 除数
    	 * @return 商
    	 */
    	public static String txfloat(int a,int b) {
    	    // TODO 自动生成的方法存根
    	 
    	    DecimalFormat df=new DecimalFormat("0.00");//设置保留位数
    
    	    return df.format((float)a/b);
    	   
    	}

    展开全文
  • Java除法结果带小数、进一法的实现(java) Java除法结果带小数、进一法的实现(java)进一法: 即省略的位上只要大于零都要进一位 ; 四舍五入法: 即省略的位上小于五都要舍去,但省略的位上满五都要进一位...

    Java除法结果带小数、进一法的实现(java)

    进一法: 即省略的位上只要大于零都要进一位 ;
    四舍五入法: 即省略的位上小于五都要舍去,但省略的位上满五都要进一位 ;
    还有一种
    去尾法: 即省略的位上不管是否满五都要舍去 ;
    1、除法带小数
    例如:
      int a = 8;
      int b = 3;
      int c = ((double)la)/b;
      System.out.println(c);
    系统打印:2.6666666666666665
    2、进一法的实现
    用Math.ceil()实现,例如Math.ceil(2.1),结果就是3.0
    例如:
      int a = 8;
      int b = 3;
      int c = ((double)la)/b;
      int d = (int) Math.ceil(c);
      System.out.println(d);
    系统打印:3

    posted on 2012-03-06 21:16 lexus 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/lexus/archive/2012/03/06/2382621.html

    展开全文
  • Java除法运算的陷阱

    千次阅读 2015-08-08 22:41:32
    Java除法运算的陷阱 2009-12-21 10:27:25 标签:Java 除法 休闲 职场 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。...
    Java除法运算的陷阱
    2009-12-21 10:27:25
    标签:Java 除法 休闲 职场
    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lavasoft.blog.51cto.com/62575/247030
    Java除法运算的陷阱
     
    除法运算谁不会啊,很多人不屑一顾,真是无知者无畏!
    其实除法、求余运算有一些陷阱。一旦计算发生了问题,还很不好找。不好找的原因主要是问题的偶然性太强,如果你知道可能发生什么问题,你的代码就可以写得更安全。
     
    数学除法规定,0不能做除数,因为会得到一个无穷大数据。
     
    西面看看Java中如何处理这些特殊情况:
     
    1、整数的除法:
     
    0做除数抛运行时异常;两整数商会做取整运算,Float或Double与一个整数做除法运算,则商位Float或者Double类型,例如:
     
                    System.out.println("------------Int相关除法----------"); 
                    System.out.println("12/10="+12/10); 
                    System.out.println("12f/10="+12f/10); 
                    System.out.println("12d/10="+12d/10); 
                    System.out.println("12/10f="+12/10d); 
                    System.out.println("12/10d="+12/10f);
     
    ------------Int相关除法---------- 
    12/10=1 
    12f/10=1.2 
    12d/10=1.2 
    12/10f=1.2 
    12/10d=1.2
     
    2、Double(或Float)除法运算:
     
    0可以做除数,得到的是一个分正负的无穷大;当两个数的绝对值均为0.0时候,商等于NaN。当0.0/x,x不等0.0时候,得到的一个带符号位0.0:
     
    package lavasoft.zerotest; 

    /** 
    * 浮点型数据的除法运算测试 

    * @author leizhimin 2009-12-21 9:00:37 
    */
     
    public class TestZero { 

            public static void main(String[] args) { 
                    System.out.println("------------Double型----------"); 
                    Double x1 = div(2.3, 0.0); 
                    Double x2 = div(2.3, -0.0); 
                    Double x3 = div(0.0, 0.0); 
                    Double x4 = div(0.0, -0.0); 
                    Double x5 = div(0.0, 0.1); 
                    Double x6 = div(0.0, -0.1); 
                    if (x1.isInfinite()) System.out.println("x1无穷大!"); 
                    if (x2.isInfinite()) System.out.println("x2无穷大!"); 
                    if (x3.isNaN()) System.out.println("x3非数字!"); 
                    if (x4.isNaN()) System.out.println("x4非数字!"); 
                    if (x1 == Double.POSITIVE_INFINITY) System.out.println("x1 = Double.POSITIVE_INFINITY"); 
                    if (x2 == Double.NEGATIVE_INFINITY) System.out.println("x1 = Double.NEGATIVE_INFINITY"); 
                    if (x3 == Double.NaN) System.out.println("x3 = Double.NaN"); 
                    if (x4 == Double.NaN) System.out.println("x4 = -Double.NaN"); 

                    System.out.println("------------Float型----------"); 
                    Float y1 = div(2.3f, 0.0f); 
                    Float y2 = div(2.3f, -0.0f); 
                    Float y3 = div(0.0f, 0.0f); 
                    Float y4 = div(0.0f, -0.0f); 
                    Float y5 = div(0.0f, -0.1f); 


                    System.out.println("------------比较测试----------"); 
                    Float a = 99999999999999999999999999999999999999f; 
                    Float b = 0.000000000000000000000000000000000000000000001f; 
                    Float t = a / b; 
                    System.out.println(t); 
                    System.out.println(Float.MAX_VALUE); 

                    if (t >= Float.MAX_VALUE) { 
                            System.out.println("a/b的商已经超过了Float的最大值了!"); 
                    } 

            } 

            public static Double div(double a, double b) { 
                    double x = a / b; 
                    System.out.println(a + "/" + b + " = " + x); 
                    return x; 
            } 

            public static Float div(float a, float b) { 
                    float x = a / b; 
                    System.out.println(a + "/" + b + " = " + x); 
                    return x; 
            } 

    }
     
    运算输出:
    ------------Double型---------- 
    2.3/0.0 = Infinity 
    2.3/-0.0 = -Infinity 
    0.0/0.0 = NaN 
    0.0/-0.0 = NaN 
    0.0/0.1 = 0.0 
    0.0/-0.1 = -0.0 
    x1无穷大! 
    x2无穷大! 
    x3非数字! 
    x4非数字! 
    x1 = Double.POSITIVE_INFINITY 
    x1 = Double.NEGATIVE_INFINITY 
    ------------Float型---------- 
    2.3/0.0 = Infinity 
    2.3/-0.0 = -Infinity 
    0.0/0.0 = NaN 
    0.0/-0.0 = NaN 
    0.0/-0.1 = -0.0 
    ------------比较测试---------- 
    Infinity 
    3.4028235E38 
    a/b的商已经超过了Float的最大值了! 

    Process finished with exit code 0
     
     
    陷阱:
    零在整数预算中不可以做除数,否则抛运行时异常。
    零在浮点运算中可以做除数,返回值为无穷大。
    NaN各不相同,可看做是Java设计上的一个缺陷。
    浮点型(Float或Double)的除法运算可以接受任何数值,并且结果总是返回一个浮点型的数值。这个数值可能是不合法的,需要进行判断和验证。
     
    3、求余:和除法差不多。
     
                    System.out.println(23%4); 
                    System.out.println(23%-4); 
                    System.out.println(-23%4); 
                    System.out.println(23f%4); 
                    System.out.println(23d%4); 
                    System.out.println(23%4f); 
                    System.out.println(23%4d); 
                    System.out.println(23f%0); 
                    System.out.println(23%0.0); 
                    System.out.println(0.0%0.0);
     
    运行结果:


    -3 
    3.0 
    3.0 
    3.0 
    3.0 
    NaN 
    NaN 
    NaN
     
    陷阱:
    符号位由被除数决定。
     
    对于Double、Float,API都提供了几个有用的判断方法,要注意运用其写出安全的代码:
    boolean isInfinite()    
                        如果该 Double 值的大小是无穷大,则返回 true;否则返回 false。    
    static boolean isInfinite(double v)    
                        如果指定数字的大小是无穷大,则返回 true;否则,返回 false。    
    boolean isNaN()    
                        如果此 Double 值是非数字(NaN)值,则返回 true;否则,返回 false。    
    static boolean isNaN(double v)    
                        如果指定的数字是一个非数字 (NaN) 值,则返回 true;否则,返回 false。    
     
    Double、Float类中都提供了一些常量,也可用于判断,当然这些常量也很有意思,看看源码就知道了。
            public static final double POSITIVE_INFINITY = 1.0 / 0.0; 
            public static final double NEGATIVE_INFINITY = -1.0 / 0.0; 
            public static final double NaN = 0.0d / 0.0; 
     

    本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/247030

    展开全文
  • java除法保留n位有效位

    千次阅读 2017-11-27 14:04:07
    java除法保留n位有效位动态的除法计算和小数点后面的位数保留/** * 计算两个数的百分比 形式为 23.22% * * @param numerator * 分子 * @param denominator * 分母 * @param digit *
  • 总结:java除法保留两位小数

    万次阅读 2015-12-23 14:49:06
    java除法保留两位小数: java中,当两个整数相除时,由于小数点以后的数字会被截断,运算结果将为整数,此时若希望得到运算结果为浮点数, 必须将两整数其一或是两者都强制转换为浮点数。因为int 是整数,整数除...
  • 安卓 java 除法取整

    千次阅读 2019-11-13 15:54:35
    好久没水博客了,凑一篇,项目中应该早晚会遇到的。我的项目需求是动态计算recyclerview的高度,每行四个item,...4个也是一行,但是6个就要两行,不能直接使用int值进行除法运算,因为会舍弃掉小数部分,java提供了...
  • JAVA除法保留小数点后两位的方法

    千次阅读 2016-04-28 16:20:37
    JAVA除法保留小数点后两位的方法 原创空间, 文章收藏, 网上资源 邢红瑞 发表于 2008-10-14 19:19:45  1.(double) (Math.round(sd3*10000)/10000.0);  这样为保持4位 (double) (Math.round(sd3*100)...
  • JAVA除法小数问题

    2020-03-06 19:12:04
    4/3 System.out.println(4/3); 结果为: 1 4/3.0 System.out.println(4/3.0); 结果为: 1.3333333333333333 若不想要自动取整 ,则应使用后者 4/3.0
  • 注意Java除法运算的陷阱

    万次阅读 2013-04-01 12:56:24
    除法运算谁不会啊,很多人不屑一顾,真是无知者无畏! 其实除法、求余运算有一些陷阱。一旦计算发生了问题,还很不好找。不好找的原因主要是问题的偶然性太强,如果你知道可能发生什么问题,你的代码就可以写得更...
  • Java除法计算小数精确到超长长度

    千次阅读 2016-11-06 16:57:43
    循环实现除法计算小数精确到超长长度,自行选择小数精确长度。
  • java除法保留小数

    2017-06-02 11:41:57
    m1.put("rate", k1_in ==0 ? "-" : String.format("%.2f",  (double)(k1_out - k1_in) * 100 / k1_in));
  • java 除法 精度问题

    万次阅读 2014-03-24 17:12:46
    int a=4; int b=3; float c = (float) a/b; System.out.print(c);//输出:1 如果要的到精确的结果,要用下面的方法 int a=4; int b=3; float c = (float) a/(float) b; System.out.print(c);...import java.text.Dec
  • java 除法运算 保留小数 number/100

    千次阅读 2019-05-05 23:11:02
    import java.text.DecimalFormat; /** * 数值工具类 */ public class NumberUtil { ... * TODO 除法运算,保留小数 * @param denominator 被除数 分母 * @param numerator 除数 分子 * @return 商 */ ...
  • java除法,保留多位小数

    千次阅读 2017-12-13 14:45:23
    所以要使用BigDecimal处理除法和乘法. 以下是两个整数相除并且转换成百分数: BigDecimal v1 = new BigDecimal(145360896); BigDecimal v2 = new BigDecimal(256235008); BigDecimal v3 = (v1
  • java除法计算保留2位小数

    千次阅读 2020-05-29 19:17:02
    int a=7; int b=9; DecimalFormat df=new DecimalFormat("0.00"); System.out.println(df.format((float)a/b)); int num1 = 7;... NumberFormat numberFormat = NumberFormat.getInstance();...
  • i 知识点: “/” 除以取整 ,“%”除以取余 , 但是 “/” 被数如果是浮点型数值 获取到的值可以是浮点型精确值 关注代码片段: sum 为 int 类型:average=sum/nums.length; sum 为 浮点型数值:average=(double...
  • java 除法 进一 和舍余

    千次阅读 2018-10-12 10:29:22
    利用Math.ceil(double)和Math.floor(double) System.out.println(29/10); System.out.println(((int)Math.ceil((double)29/(double)10))); System.out.println(((int)Math.floor((double)29/(double)10)));...
  • Java除法保留小数、百分数

    千次阅读 2015-12-20 13:15:16
    1、int 相除只保留整数位,若保留小数点后2位先乘以100再除以100 2、double 相除精确到小数点后多位,通过DecimalFormat 设置保留小 ...import java.text.DecimalFormat; import java.text.NumberFormat; pub
  • java 除法向上,向下取整

    千次阅读 2020-07-14 09:15:58
    向上取整用Math.ceil(double a) 向下取整用Math.floor(double a) // 举例: double a=35; double b=20; double c = a/b; System.out.println("c===>... System.out.println(Math.flo...
  • float price=(float) 625.2135; DecimalFormat decimalFormat=new DecimalFormat(".00");//这里有几个0就保留几位,如果小数不足位,会以0补足. String price1=decimalFormat.format(price);...
  • Java 除法保留N位小数,计算百分比

    千次阅读 2019-04-20 16:44:39
    java 两个整数相除保留两位小数: https://blog.csdn.net/qq_26676207/article/details/53375263 1、方法1 int a=1099; int b=93; double f1 = new BigDecimal((float)a/b).setScale(2, BigDecimal.ROUND_HALF_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,899
精华内容 53,159
关键字:

java怎么除法

java 订阅