Java基础问题
答案:7 悬赏:0 手机版
解决时间 2021-11-07 13:01
- 提问者网友:末路
- 2021-11-06 21:27
Java基础问题
最佳答案
- 五星知识达人网友:毛毛
- 2021-11-06 21:50
不知道,但应该是个参数。如果是eclipse写的,按住ctrl键,点击divide,会看到这个方法的源代码。看看里面的方法。(这个应该是别人定义的方法,而你给的是其中一段。如果是库函数,可能要贴资源,但是网上找api也能看到源代码)
全部回答
- 1楼网友:煞尾
- 2021-11-07 03:47
感脚是sun公司写好的某个参数
- 2楼网友:平生事
- 2021-11-07 02:27
r是方法传进来的参数
- 3楼网友:野味小生
- 2021-11-07 01:04
不知道你是怎么弄的,我debug当b小于0的时候有提示信息。你这段代码应该是从工程里面摘下来的,像BigDecimal.ROUND_DOWN、BigDecimal.ROUND_FLOOR这些都是在其他类里面定义的,所以r代表什么还要结合工程。
- 4楼网友:逃夭
- 2021-11-07 00:29
BigDecimal 中divide(1,2,3) 第一个参数是BigDecimal类型的值,第二个参数为保留小树位数,第三个为取舍模式:如四舍五入,这个可以是数字,也可以是BigDecimal定义的常量:如 down.这些都是api上面有的,BigDecimal这类的方法都可以查到。
- 5楼网友:纵马山川剑自提
- 2021-11-06 23:18
package retestC9;
import java.math.*;
public class Test2 {
public static BigDecimal div(double value1,double value2,int b,int r){
if(b<0){
System.out.println("b值必须大于等于0");
}
BigDecimal b1=new BigDecimal(Double.toString(value1));
BigDecimal b2=new BigDecimal(Double.toString(value2));
return b1.divide(b2,b,r); //这里的r代表什么?后面r位置应该全是5,我把r改成5后为什么输出结果变了?相当于怎么进位,不一定是四舍五位比如
//1.3333 小数保留3位 ROUND_UP的结果是1.334,ROUND_DOWN的结果是1.333
}
public static void main(String[] args) {
BigDecimal b1=new BigDecimal(Double.toString(4));
BigDecimal b2=new BigDecimal(Double.toString(3));
// System.out.println(b1.divide(b2));//5
//4/3的结果等于1.33333333
System.out.println(b1.divide(b2,3,BigDecimal.ROUND_UP));//1.334 BigDecimal.ROUND_UP 1.3333变成1.334
System.out.println(b1.divide(b2,3,BigDecimal.ROUND_DOWN));//1.334 BigDecimal.ROUND_DOWN 1.3333是1.333
b1=new BigDecimal(Double.toString(5));
b2=new BigDecimal(Double.toString(3));
//5/3的结果等于1.66666666666666
System.out.println(b1.divide(b2,3,BigDecimal.ROUND_UP));//1.667 BigDecimal.ROUND_UP 1.6666变成1.667
System.out.println(b1.divide(b2,3,BigDecimal.ROUND_DOWN));//1.6666 BigDecimal.ROUND_DOWN 1.6666是1.6666
Test2 u=new Test2();
System.out.println(u.div(-7.5,-8.9,-5,BigDecimal.ROUND_CEILING)); //为什么这里b小于零却没有输出提示信息?请小心点,5怎么会小于0
}
}
import java.math.*;
public class Test2 {
public static BigDecimal div(double value1,double value2,int b,int r){
if(b<0){
System.out.println("b值必须大于等于0");
}
BigDecimal b1=new BigDecimal(Double.toString(value1));
BigDecimal b2=new BigDecimal(Double.toString(value2));
return b1.divide(b2,b,r); //这里的r代表什么?后面r位置应该全是5,我把r改成5后为什么输出结果变了?相当于怎么进位,不一定是四舍五位比如
//1.3333 小数保留3位 ROUND_UP的结果是1.334,ROUND_DOWN的结果是1.333
}
public static void main(String[] args) {
BigDecimal b1=new BigDecimal(Double.toString(4));
BigDecimal b2=new BigDecimal(Double.toString(3));
// System.out.println(b1.divide(b2));//5
//4/3的结果等于1.33333333
System.out.println(b1.divide(b2,3,BigDecimal.ROUND_UP));//1.334 BigDecimal.ROUND_UP 1.3333变成1.334
System.out.println(b1.divide(b2,3,BigDecimal.ROUND_DOWN));//1.334 BigDecimal.ROUND_DOWN 1.3333是1.333
b1=new BigDecimal(Double.toString(5));
b2=new BigDecimal(Double.toString(3));
//5/3的结果等于1.66666666666666
System.out.println(b1.divide(b2,3,BigDecimal.ROUND_UP));//1.667 BigDecimal.ROUND_UP 1.6666变成1.667
System.out.println(b1.divide(b2,3,BigDecimal.ROUND_DOWN));//1.6666 BigDecimal.ROUND_DOWN 1.6666是1.6666
Test2 u=new Test2();
System.out.println(u.div(-7.5,-8.9,-5,BigDecimal.ROUND_CEILING)); //为什么这里b小于零却没有输出提示信息?请小心点,5怎么会小于0
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯