这个a++在while是什么意思呢,是先取值为a还是a加1,根据前面视频说a++是先取值a,然后在进行自增循环,但这里它是先加1了再往下走
代码区:
import java.math.*; /** * 测试浮点型 * @author Administrator * */ public class TestPrimitivaDataType2 { public static void main(String[]args) { float a=3.14F; double b=6.28; double c=628E-2; System.out.println(c); //浮点数是不精确的,一定不要用于比较 float f=0.1f; double d=1.0/10; System.out.println(f==d);//结果为false float d1=0.1f; float d2=d1+1; if(d1==d2) { System.out.println("d1=d2");//输出结果为的d1==d2 }else { System.out.println(d1!=d2); } System.out.println("#####################"); //使用精确浮点运行,推荐:BigDecimal BigDecimal bd = BigDecimal.valueOf(1.0); bd = bd.subtract(BigDecimal.valueOf(0.1)); bd = bd.subtract(BigDecimal.valueOf(0.1)); bd = bd.subtract(BigDecimal.valueOf(0.1)); bd = bd.subtract(BigDecimal.valueOf(0.1)); bd = bd.subtract(BigDecimal.valueOf(0.1)); System.out.println(bd);//0.5 System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);//0.5000000000000001 BigDecimal bd2=BigDecimal.valueOf(0.1); BigDecimal bd3=BigDecimal.valueOf(1.0/10.0); System.out.println(bd2.equals(bd3)); } }
问题:
System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);//0.5000000000000001
的运行结果为什么是
0.5000000000000001
这个不应该也是0.5吗?不是直接算括号里面的内容吗?
1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1
老师你看一下,我的计算个税的算法,有没有问题
//个人税计算 //全额计算:应纳税所得额=工资收入金额-各项社会保险费-起征点(5000元) //应纳税额=应纳税所得额x税率-速算扣除数 double number = 0;//计算总额 do { Scanner input = new Scanner(System.in); System.out.println("请输入月薪"); double num; if (input.hasNextDouble()) { num = input.nextDouble(); System.out.println("请输入五险一金"); double num1 = input.nextDouble(); if ((num > 0) && (num <= 36000)) { number = (num - num1 - 5000) * 0.3 - 0; }else if ((num > 36000) && (num <= 144000)) { number = (num - num1 - 5000) * 0.10 - 2520; }else if ((num > 144000) && (num <= 300000)) { number = (num - num1 - 5000) * 0.20 - 16920; }else if ((num > 30000) && (num <= 420000)) { number = (num - num1 - 5000) * 0.25 - 31920; }else if ((num > 420000) && (num <= 660000)) { number = (num - num1 - 5000) * 0.30 - 52920; }else if ((num > 660000) && (num <= 960000)) { number = (num - num1 - 5000) * 0.35 - 85920; }else if (num > 960000) { number = (num - num1 - 5000) * 0.45 - 181920; }else { System.err.println("输入的值有误,请重新输入"); continue; } System.out.println("应缴税:" + number); //是否继续计算 System.out.println("是否继续计算,输入next或其他字符继续,exit退出"); String flag = input.next(); if (flag.equals("next")) { continue; }else if (flag.equals("exit")) { System.out.println("退出系统"); break; } }else { String str = input.next(); System.err.println("请输入正确数字!!!"); continue; } }while(true);
飞机项目第一段代码。为何要写继承这个Frame类呢,是否可以直接用。
public class MyGameFrame extends Frame{ //初始化窗口 public void launchFrame(){ this.setTitle("Star War"); setVisible(true);//窗口默认不可见,需设置可见。 setSize(500,500);//窗口大小。 setLocation(100,100);//窗口打开的位置。 } }
老师你好
C c=new CImpl01();和CImpl01 c=new CImpl01();的差别是不是就多一个向上转型?
我有一个疑问CImpl01是运行时类型,C是编译类型,如果CImpl01在实现了接口C后,又写了自己的方法X,用C c的c是不是调用不了X,用CImpl01 c才能调用那个方法X?
(1)短路运算符如果左边操作数不能确定该逻辑表达式的值,那么会继续计算右边操作数吗?
(2)短路与如果两个都是正确的,是不是最终打印结果为正确呢?
为啥3.14=180°,弧度和角度是咋换算的
import java.util.Arrays; public class Test { public static void main(String[ ] args) { Man[ ] msMans = { new Man(3, "a"), new Man(60, "b"), new Man(2, "c") }; Arrays.sort(msMans); System.out.println(Arrays.toString(msMans)); } } class Man implements Comparable { int age; int id; String name; public Man(int age, String name) { super(); this.age = age; this.name = name; } public String toString() { return this.name; } public int compareTo(Object o) { Man man = (Man) o; if (this.age < man.age) { return -1; } if (this.age > man.age) { return 1; } return 0; } }
不是很理解comparable接口的使用究竟什么意识,该如何使用。
我的理解就是Man方法实现接口comparable,然后构造Man方法,重写了tostring方法,实现了comparable接口中的compareTo方法。那直接调用Arrays,sort不也可以直接进行排序吗。
在运行时,出现了这样的警告,是什么意思呢?要怎么解决?
为什么我的idea在运行时特别慢呢,通常都要等好几秒钟?有什么好的解决方法?
老师好,自己在做算法题时,有一个关于break和continue语法上的问题,求解答一下,
public int[] twoSum(int[] nums, int target) { Map<Integer,Integer> map=new HashMap<>(); for(int i=0;i<nums.length;i++){ int sub=target-nums[i]; if(map.containsKey(sub)){ return new int[]{i,map.get(sub)}; } map.put(nums[i], i); } throw new IllegalArgumentException("No two sum solution"); }
我的问题在第六行,如果if里面为True,返回数组,那么会跳出整个程序吗?
如果不跳出,我不明白第10行的作用,
因为不管是否找到对应数据,只要for循环结束,一定要执行第十行的代码,那么不管找不找得到数组,都会执行第十行报错程序,如果找到了,先return对应的数据,然后还执行第十行的没找到,不就不对了吗?
作业是让 生成一个空心的10*10的正方形,我的代码完成了这个需求,当在第17行代码中的 j==6,在我理解中应该是j==10,但是通过实验只有j==6可以完成代码需求,求解惑。
老师,视频中,递归算法是在主方法中计算的时间差,循环算法是在被调用的方法中计算的时间差,
以循环算法为例,我在主方法中计算和在被调用的方法中计算时间差,有误差吗?
在主方法中调用,然后计算时间差:
在被调用的方法中计算时间差,然后再调用:
我觉得应该是不一样的,因为调用也会占用时间吧,不知道理解的有没有问题?
运行结果:
从结果来看,感觉调用比运行更耗时间?
听了几遍,怎么越听越乱呢?
怎么才能简单、理解的记住它呢?
听了之后感觉很懵啊,是不是可以理解为类属于一个大的工厂,这个工厂中包含原材料,生产机器和机器的操作步骤,然后去生产出不同的产品,那这些材料,和机器是不是就相当于这个类的属性?机器的操作过程属于方法,那这个面向对象指的是谁呢?是生产出来的产品是对象吗?还是是说我的这些材料,生产机器以及生产方法就是对象。
高老师讲的代码中需要用到getset方法,我自己写代码的时候把get代码去掉也不影响结果,这个get的作用是什么呢
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637