首页 > 其他分享 >RoundingMode 几个参数详解

RoundingMode 几个参数详解

时间:2023-06-17 17:03:33浏览次数:46  
标签:舍入 scale BigDecimal double v1 详解 参数 new RoundingMode

第一版

java.math.RoundingMode 几个参数详解

java.math.RoundingMode里面有几个参数搞得我有点晕,现以个人理解对其一一进行总结:

为了能更好理解,我们可以画一个XY轴

RoundingMode.CEILING:取右边最近的整数

RoundingMode.DOWN:去掉小数部分取整,也就是正数取左边,负数取右边,相当于向原点靠近的方向取整

RoundingMode.FLOOR:取左边最近的正数

RoundingMode.HALF_DOWN:五舍六入,负数先取绝对值再五舍六入再负数

RoundingMode.HALF_UP:四舍五入,负数原理同上

RoundingMode.HALF_EVEN:这个比较绕,整数位若是奇数则四舍五入,若是偶数则五舍六入

第二版

roundMode是指舍位时候的模式,传参数的时候用BigDecimal.ROUND_XXXX_XXX,

有以下例子是setScale(0,BigDecimal.ROUND_XXXX_XXX));的情况。如果保留小数位数不是零,如

setScale(2,BigDecimal.ROUND_XXXX_XXX)); 是 2 ,则 此数字的小数位数要大于2位。第三位才是要取舍得位。

  ROUND_CEILING:   舍位时往正无穷方向移动   1.1->2   1.5->2   1.8->2   -1.1->-1   -1.5->-1   -1.8->-1   

  ROUND_DOWN:向0的方向移动1.1->1   1.5->1   1.8->1   -1.1->-1   -1.5->-1   -1.8>-1   

  ROUND_FLOOR:与CEILING相反,往负无穷   1.1->1   1.5->1   1.8->1   -1.1->-2   -1.5->-2   -1.8->-2   

  ROUND_HALF_DOWN:以5为分界线,或曰五舍六入1.5->1   1.6->1   -1.5->-1   -1.6->-2 1.15->1.1   1.16->1.2 1.55->1.6  1.56->1.6

  ROUND_HALF_EVEN:同样以5为分界线,如果是5,则前一位变偶数1.15->1.2   1.16->1.2   1.25->1.2   1.26->1.3   

  ROUND_HALF_UP:最常见的四舍五入   

  ROUND_UNNECESSARY:无需舍位   

  ROUND_UP:与ROUND_DOWN,远离0的方向1.1->2   1.5->2   1.8->2   -1.1->-2   -1.5->-2   -1.8->-2   


  具体精确到几位因该采用   

  商=被除数.devide(除数,保留小数位数,精确方法)

第三版

BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。 

可以处理任意长度的浮点数运算。 

BigDecimal add(BigDecimal val) //BigDecimal 加法 

BigDecimal subtract (BigDecimal val) //BigDecimal 减法 

BigDecimal multiply (BigDecimal val)  //BigDecimal 乘法 

BigDecimal divide (BigDecimal val,RoundingMode mode)  除法 

具体使用 计算: 

   

  加:   a.add(b); 

  减: a.subtract(b); 

  乘:   a.multiply(b); 

  除:   a.divide(b,2);//2为精度取值 

除法细解: 

  //注意以下相除会抛出异常,原因: 通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常  

        //BigDecimal divideBg = a.divide(b);   

        //解决方法是:设置精确度;就是给divide设置精确的小数点 

divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)   

        //其中的第二个参数表示的是:保留小数点之后多少位  

BigDecimal不整除抛出的异常,请设置精确度! 

Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 

at java.math.BigDecimal.divide(BigDecimal.java:1278) 

at main.Main.main(Main.java:41) 

下面我们来看看除法的详细说明: 

   divide(BigDecimal divisor, int scale, introundingMode) 

BigDecimal的setScale方法 

BigDecimal.setScale() 

方法用于格式化小数点 

表示保留一位小数,默认用四舍五入方式 

setScale(1) 

直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_DOWN) 

进位处理,2.35变成2.4  setScale(1,BigDecimal.ROUND_UP) 

四舍五入,2.35变成2.4  setScale(1,BigDecimal.ROUND_HALF_UP) 

四舍五入,2.35变成2.3,如果是5则向下舍setScaler(1,BigDecimal.ROUND_HALF_DOWN) 

  

注意点一 

scale指的是你小数点后的位数。 

scale()就是BigDecimal类中的方法。如 

BigDecimal b = new BigDecimal("123.456"); 

b.scale()返回的就是3 

注意点二roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段, 

有很多种,如 

BigDecimal.ROUND_HALF_UP表示的就是4舍5入 

注意点三 

divide(BigDecimal divisor, int scale, introundingMode)的意思是说: 

我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的 

BigDecimal aa = new  BigDecimal(135.95 );  

BigDecimal bb=new  BigDecimal("100" );  

BigDecimal result=aa.multiply(bb);  //做加法 

3.java中 BigDecimal类型的可以转换到double类型: 

  用 变量.doubleValue();函数  即可将 BigDecimal 类型数据 转化为 double类型! 

4.java BigDecimal比较大小 

可以通过BigDecimal的compareTo方法来进行比较。 

返回的结果是int类型,-1表示小于,0是等于,1是大于。 

看下面这个例子: 

BigDecimal a = new BigDecimal("1.00"); 

BigDecmial b = new BigDecimal(1); 

想比较一下a和b的大小,一般都会用equals 

System.out.println(a.equals(b)); 

但是输出结果是:false 

原因是:BigDecimal比较时,不仅比较值,而且还比较精度? 

if(a.compareTo(b)==0) 结果是true 

比较大小可以用 a.compareTo(b) 

返回值    -1 小于   0 等于    1 大于 

5.BigDecimal取其中最大、最小值、绝对值、相反数: 

  a.max (b) //比较取最大值 

  a.min(b) //比较取最小值 

  a.abs()//取最绝对值 

  a.negate()//取相反数 

6.下面是注意 : 

BigDecimal枚举常量用法摘要  : 

CEILING   

          向正无限大方向舍入的舍入模式。 

DOWN   

          向零方向舍入的舍入模式。 

FLOOR   

          向负无限大方向舍入的舍入模式。 

HALF_DOWN   

          向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向下舍入。 

HALF_EVEN   

          向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。 

HALF_UP   

          向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向上舍入。 

UNNECESSARY   

          用于断言请求的操作具有精确结果的舍入模式,因此不需要舍入。 

UP   

          远离零方向舍入的舍入模式。 

7.关于BigDecimal格式化 

public String formatValue(Object value){ 

        String content = null; 

        if (value == null) { 

             content = ""; 

         } else { 

             if(value instanceof BigDecimal){ 

                 //conver to fortmat String 

                 NumberFormat nf = NumberFormat.getInstance(); 

                 nf.setMinimumFractionDigits(2); 

                 nf.setMaximumFractionDigits(2); 

                 content = nf.format(value);  

             }else{ 

                 content = String.valueOf(value); 

             } 

         } 

        return content; 

    } 

使用这样一个方法可以达到格式化的效果,其中value instanceof BigDecimal,表示的是字符类型是BigDecimal类型的时候执行,这里的NumberFormat就表示字符类型,下面的两句代码就表示小数点后面的精确位数。 

这里还要提到NumberFormat的其他两个类型: 

getCurrencyInstance(): 返回当前默认 环境的货币格式 

CurrencyInstance(): 返回指定语言 环境的数字格式,一般是百分比格式 

8.在《Effective Java》这本书中也提到这个原则,float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用java.math.BigDecimal。 

我们如果需要精确计算,非要用String来够造BigDecimal不可! 

下面的这个工具类是是转载别人的,可以通过个工具类实现小数的精确计算。 

1import java.math.BigDecimal;   

2/** *//**  

3* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精  

4* 确的浮点数运算,包括加减乘除和四舍五入。  

5*/  

6public class Arith{   

7    //默认除法运算精度   

8    private static final int DEF_DIV_SCALE = 10;   

9    //这个类不能实例化   

10    private Arith(){   

11    }   

12  

13    /** *//**  

14     * 提供精确的加法运算。  

15     * @param v1 被加数  

16     * @param v2 加数  

17     * @return 两个参数的和  

18     */  

19    public static double add(double v1,double v2){   

20        BigDecimal b1 = new BigDecimal(Double.toString(v1));   

21        BigDecimal b2 = new BigDecimal(Double.toString(v2));   

22        return b1.add(b2).doubleValue();   

23    }   

24    /** *//**  

25     * 提供精确的减法运算。  

26     * @param v1 被减数  

27     * @param v2 减数  

28     * @return 两个参数的差  

29     */  

30    public static double sub(double v1,double v2){   

31        BigDecimal b1 = new BigDecimal(Double.toString(v1));   

32        BigDecimal b2 = new BigDecimal(Double.toString(v2));   

33        return b1.subtract(b2).doubleValue();   

34    }    

35    /** *//**  

36     * 提供精确的乘法运算。  

37     * @param v1 被乘数  

38     * @param v2 乘数  

39     * @return 两个参数的积  

40     */  

41    public static double mul(double v1,double v2){   

42        BigDecimal b1 = new BigDecimal(Double.toString(v1));   

43        BigDecimal b2 = new BigDecimal(Double.toString(v2));   

44        return b1.multiply(b2).doubleValue();   

45    }   

46  

47    /** *//**  

48     * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到  

49     * 小数点以后10位,以后的数字四舍五入。  

50     * @param v1 被除数  

51     * @param v2 除数  

52     * @return 两个参数的商  

53     */  

54    public static double div(double v1,double v2){   

55        return div(v1,v2,DEF_DIV_SCALE);   

56    }   

57  

58    /** *//**  

59     * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指  

60     * 定精度,以后的数字四舍五入。  

61     * @param v1 被除数  

62     * @param v2 除数  

63     * @param scale 表示表示需要精确到小数点以后几位。  

64     * @return 两个参数的商  

65     */  

66    public static double div(double v1,double v2,int scale){   

67        if(scale<0){   

68            throw new IllegalArgumentException(   

69                "The scale must be a positive integer or zero");   

70        }   

71        BigDecimal b1 = new BigDecimal(Double.toString(v1));   

72        BigDecimal b2 = new BigDecimal(Double.toString(v2));   

73        return b1.divid(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();   

74    }   

75  

76    /** *//**  

77     * 提供精确的小数位四舍五入处理。  

78     * @param v 需要四舍五入的数字  

79     * @param scale 小数点后保留几位  

80     * @return 四舍五入后的结果  

81     */  

82    public static double round(double v,int scale){   

83        if(scale<0){   

84            throw new IllegalArgumentException(   

85                "The scale must be a positive integer or zero");   

86        }   

87        BigDecimal b = new BigDecimal(Double.toString(v));   

88        BigDecimal one = new BigDecimal("1");   

89        return b.divid(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();   

90     }   

91  }  BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。 

可以处理任意长度的浮点数运算。 

BigDecimal add(BigDecimal val) //BigDecimal 加法 

BigDecimal subtract (BigDecimal val) //BigDecimal 减法 

BigDecimal multiply (BigDecimal val)  //BigDecimal 乘法 

BigDecimal divide (BigDecimal val,RoundingMode mode)  除法 

具体使用 计算: 

   

  加:   a.add(b); 

  减: a.subtract(b); 

  乘:   a.multiply(b); 

  除:   a.divide(b,2);//2为精度取值 

除法细解: 

  //注意以下相除会抛出异常,原因: 通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常  

        //BigDecimal divideBg = a.divide(b);   

        //解决方法是:设置精确度;就是给divide设置精确的小数点 

divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)   

        //其中的第二个参数表示的是:保留小数点之后多少位  

BigDecimal不整除抛出的异常,请设置精确度! 

Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 

at java.math.BigDecimal.divide(BigDecimal.java:1278) 

at main.Main.main(Main.java:41) 

下面我们来看看除法的详细说明: 

   divide(BigDecimal divisor, int scale, introundingMode) 

BigDecimal的setScale方法 

BigDecimal.setScale() 

方法用于格式化小数点 

表示保留一位小数,默认用四舍五入方式 

setScale(1) 

直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_DOWN) 

进位处理,2.35变成2.4  setScale(1,BigDecimal.ROUND_UP) 

四舍五入,2.35变成2.4  setScale(1,BigDecimal.ROUND_HALF_UP) 

四舍五入,2.35变成2.3,如果是5则向下舍setScaler(1,BigDecimal.ROUND_HALF_DOWN) 

  

注意点一 

scale指的是你小数点后的位数。 

scale()就是BigDecimal类中的方法。如 

BigDecimal b = new BigDecimal("123.456"); 

b.scale()返回的就是3 

注意点二roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段, 

有很多种,如 

BigDecimal.ROUND_HALF_UP表示的就是4舍5入 

注意点三 

divide(BigDecimal divisor, int scale, introundingMode)的意思是说: 

我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的 

BigDecimal aa = new  BigDecimal(135.95 );  

BigDecimal bb=new  BigDecimal("100" );  

BigDecimal result=aa.multiply(bb);  //做加法 

3.java中 BigDecimal类型的可以转换到double类型: 

  用 变量.doubleValue();函数  即可将 BigDecimal 类型数据 转化为 double类型! 

4.java BigDecimal比较大小 

可以通过BigDecimal的compareTo方法来进行比较。 

返回的结果是int类型,-1表示小于,0是等于,1是大于。 

看下面这个例子: 

BigDecimal a = new BigDecimal("1.00"); 

BigDecmial b = new BigDecimal(1); 

想比较一下a和b的大小,一般都会用equals 

System.out.println(a.equals(b)); 

但是输出结果是:false 

原因是:BigDecimal比较时,不仅比较值,而且还比较精度? 

if(a.compareTo(b)==0) 结果是true 

比较大小可以用 a.compareTo(b) 

返回值    -1 小于   0 等于    1 大于 

5.BigDecimal取其中最大、最小值、绝对值、相反数: 

  a.max (b) //比较取最大值 

  a.min(b) //比较取最小值 

  a.abs()//取最绝对值 

  a.negate()//取相反数 

6.下面是注意 : 

BigDecimal枚举常量用法摘要  : 

CEILING   

          向正无限大方向舍入的舍入模式。 

DOWN   

          向零方向舍入的舍入模式。 

FLOOR   

          向负无限大方向舍入的舍入模式。 

HALF_DOWN   

          向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向下舍入。 

HALF_EVEN   

          向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。 

HALF_UP   

          向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向上舍入。 

UNNECESSARY   

          用于断言请求的操作具有精确结果的舍入模式,因此不需要舍入。 

UP   

          远离零方向舍入的舍入模式。 

7.关于BigDecimal格式化 

public String formatValue(Object value){ 

        String content = null; 

        if (value == null) { 

             content = ""; 

         } else { 

             if(value instanceof BigDecimal){ 

                 //conver to fortmat String 

                 NumberFormat nf = NumberFormat.getInstance(); 

                 nf.setMinimumFractionDigits(2); 

                 nf.setMaximumFractionDigits(2); 

                 content = nf.format(value);  

             }else{ 

                 content = String.valueOf(value); 

             } 

         } 

        return content; 

    } 

使用这样一个方法可以达到格式化的效果,其中value instanceof BigDecimal,表示的是字符类型是BigDecimal类型的时候执行,这里的NumberFormat就表示字符类型,下面的两句代码就表示小数点后面的精确位数。 

这里还要提到NumberFormat的其他两个类型: 

getCurrencyInstance(): 返回当前默认 环境的货币格式 

CurrencyInstance(): 返回指定语言 环境的数字格式,一般是百分比格式 

8.在《Effective Java》这本书中也提到这个原则,float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用java.math.BigDecimal。 

我们如果需要精确计算,非要用String来够造BigDecimal不可! 

下面的这个工具类是是转载别人的,可以通过个工具类实现小数的精确计算。 

1import java.math.BigDecimal;   

2/** *//**  

3* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精  

4* 确的浮点数运算,包括加减乘除和四舍五入。  

5*/  

6public class Arith{   

7    //默认除法运算精度   

8    private static final int DEF_DIV_SCALE = 10;   

9    //这个类不能实例化   

10    private Arith(){   

11    }   

12  

13    /** *//**  

14     * 提供精确的加法运算。  

15     * @param v1 被加数  

16     * @param v2 加数  

17     * @return 两个参数的和  

18     */  

19    public static double add(double v1,double v2){   

20        BigDecimal b1 = new BigDecimal(Double.toString(v1));   

21        BigDecimal b2 = new BigDecimal(Double.toString(v2));   

22        return b1.add(b2).doubleValue();   

23    }   

24    /** *//**  

25     * 提供精确的减法运算。  

26     * @param v1 被减数  

27     * @param v2 减数  

28     * @return 两个参数的差  

29     */  

30    public static double sub(double v1,double v2){   

31        BigDecimal b1 = new BigDecimal(Double.toString(v1));   

32        BigDecimal b2 = new BigDecimal(Double.toString(v2));   

33        return b1.subtract(b2).doubleValue();   

34    }    

35    /** *//**  

36     * 提供精确的乘法运算。  

37     * @param v1 被乘数  

38     * @param v2 乘数  

39     * @return 两个参数的积  

40     */  

41    public static double mul(double v1,double v2){   

42        BigDecimal b1 = new BigDecimal(Double.toString(v1));   

43        BigDecimal b2 = new BigDecimal(Double.toString(v2));   

44        return b1.multiply(b2).doubleValue();   

45    }   

46  

47    /** *//**  

48     * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到  

49     * 小数点以后10位,以后的数字四舍五入。  

50     * @param v1 被除数  

51     * @param v2 除数  

52     * @return 两个参数的商  

53     */  

54    public static double div(double v1,double v2){   

55        return div(v1,v2,DEF_DIV_SCALE);   

56    }   

57  

58    /** *//**  

59     * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指  

60     * 定精度,以后的数字四舍五入。  

61     * @param v1 被除数  

62     * @param v2 除数  

63     * @param scale 表示表示需要精确到小数点以后几位。  

64     * @return 两个参数的商  

65     */  

66    public static double div(double v1,double v2,int scale){   

67        if(scale<0){   

68            throw new IllegalArgumentException(   

69                "The scale must be a positive integer or zero");   

70        }   

71        BigDecimal b1 = new BigDecimal(Double.toString(v1));   

72        BigDecimal b2 = new BigDecimal(Double.toString(v2));   

73        return b1.divid(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();   

74    }   

75  

76    /** *//**  

77     * 提供精确的小数位四舍五入处理。  

78     * @param v 需要四舍五入的数字  

79     * @param scale 小数点后保留几位  

80     * @return 四舍五入后的结果  

81     */  

82    public static double round(double v,int scale){   

83        if(scale<0){   

84            throw new IllegalArgumentException(   

85                "The scale must be a positive integer or zero");   

86        }   

87        BigDecimal b = new BigDecimal(Double.toString(v));   

88        BigDecimal one = new BigDecimal("1");   

89        return b.divid(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();   

90     }   

91  }  

标签:舍入,scale,BigDecimal,double,v1,详解,参数,new,RoundingMode
From: https://blog.51cto.com/u_16111396/6505380

相关文章

  • 随心所欲玩复制 详解robocopy (完)
    摘自:https://www.ngui.cc/el/955886.html?action=onClick通过本系列前面四篇文章的介绍,大体上对robocopy有了全面的讲解,针对常用的操作也做了比较充分的说明。其实在WindowsServer中,大部分的备份工作都是通过这个命令来实现的。在这最后一篇文章中,给出robocopy的命令格式以及所......
  • 电源参数计算常用的Mathcad功能介绍
    mathcad作为一款常用的数学计算软件,在很多个领域都用应用。本文用于总结在电源参数计算常用的功能或者函数。  一、分段函数在变量后面输入英文状态下的]键,就能出现分段函数的格式,将函数f(x)分为两段,再次按]键,将函数分为三段。不过分段函数一般是结合其他函数命令......
  • MultipartFile工具类(方法详解)
    最近项目一直在接触和文件上传相关的知识,趁最近忙里偷闲,那就从基础开始一点点的整理相关知识吧!首先我们要认识一下Java中的流1、“流”是一个抽象的概念,它是对输入输出设备的一种抽象理解,在java中,对数据的输入输出操作都是以“流”的方式进行的。2、“流”具有方向性,输入流、输......
  • CMU15445 (Fall 2020) 数据库系统 Project#3 - Query Execution 详解
    前言经过前两个实验的铺垫,终于到了执行SQL语句的时候了。这篇博客将会介绍SQL执行计划实验的实现过程,下面进入正题。总体架构一条SQL查询的处理流程如下为:SQL被Parser解析为抽象语法树ASTBinber将AST转换为Bustub可以理解的更高级的ASTTreerewriter将语法......
  • 一文详解图卷积神经网络
    本文是文章AGentleIntroductiontoGraphNeuralNetworks的个人笔记,强烈建议大家去体验原文的交互式阅读,以及李沐老师的讲解。我的宗旨是尽量使用浅显易懂的白话,而不是晦涩的术语,把概念和理论讲清楚。开始吧!作为一枚资(ruo)深(ji)NLPer,我常见的神经网络输入是一段文本序......
  • Vue进阶(幺贰柒):插槽详解
    (文章目录)一、概述插槽就是子组件中用slot标签定义的预留位置,可以设置name属性,也可以不设置name属性,设置name属性的叫具名插槽,不设置name属性的叫不具名插槽,在父组件中使用子组件时候,可以在使用子组件标签内通过声明插槽名或不声明插槽名的方式往子组件中的具名插槽或者不具名插......
  • 【初识C++】(缺省参数和函数重载)
    @TOC一、缺省参数1.缺省参数定义缺省参数是在函数的声明中给定参数一个指定的值。如果传参没有给定参数,那就按照声明中默认的缺省值,如果给定了参数,那就按照给定的参数值。比如:usingnamespacestd;voidFunc(inta=0){ cout<<a<<endl;}intmain(){ Func(); //......
  • Python - 方法参数中,带self和不带self的区别
    不带self该python文件中,没有类的概念。因此所有的方法参数中,没有self#文件名solution.pydefpartition(head:Optional[ListNode],x:int)->Optional[ListNode]:#...if__name__=='__main__':#注意这里的区别...partition() 如果未来要在其他类里......
  • ASEMI代理光宝高速光耦LTV-5341参数,LTV-5341应用
    编辑-ZLTV-5341参数描述:型号:LTV-5341储存温度Tstg:-55~+125℃工作温度Topr:-40~+110℃总输出电源电压(VCC–VEE):35V平均正向输入电流IF:20mA峰值瞬态输入电流IF(TRAN):1A输入功率耗散PI:40mW输出IC功耗PO:450mW电源电压VCC:30V输入电流(ON):10mA输入电压(OFF):0.8V工作频率f:50......
  • 修改ASM实例参数,导致GI集群无法启动
    0、有一套预生产环境,准备在上线之前先进行数据库参数修改。结果在修改ASM内存参数时,忘记resetmemory_max_target参数,导致GI集群无法启动。将整个故障记录下来。 1、修改ASM实例参数altersystemsetprocesses=1000scope=spfilesid='*';altersystemsetsga_max_size......