草庐IT

Java Puzzler - 将 double 转换为 int

intanInt=1;doubleaDouble=2.5;anInt=anInt+aDouble;//Error-needtocastdoubletointanInt+=aDouble;//Thisisok.Why?anInt=aDouble;//Thisisalsoanerror.anInt=1+aDouble;//Thisisalsoanerror.所以我的问题是:为什么执行anInt+=aDouble不是编译错误? 最佳答案 四种情况中的三种正确报告错误。复合赋值是该规则的唯一异常(exception)。Java语言规范第15

Java 从文本文件中读取值

我是Java新手。我有一个包含以下内容的文本文件。`trace`-structure(list("a"=structure(c(0.748701,0.243802,0.227221,0.752231,0.261118,0.263976,1.19737,0.22047,0.222584,0.835411)),"b"=structure(c(1.4019,0.486955,-0.127144,0.642778,0.379787,-0.105249,1.0063,0.613083,-0.165703,0.695775))))现在我想要的是,我需要将“a”和“b”作为两个不同的数组列表。

java - 2d 球没有正确碰撞

我只是想编写一个漂亮的物理游戏。球碰撞看起来不错,但如果球碰撞速度太慢,它们就会“粘”在一起。我不知道他们为什么这样做。这是我的碰撞函数:privatevoidcheckForCollision(ArrayListballs){for(inti=0;i但是当它们以低速碰撞时会发生这种情况:那你有什么想法吗?编辑:Alnitak的更新工作得很好......但一个问题仍然存在......如果我像这样添加重力:publicvoidphysic(){motionY+=GRAVITY;//它们仍然相互移动。我认为这是增加引力的错误方法,对吧?而且我认为我在碰撞公式上做错了,因为它们不正确:!然后

java - 在 Java 中将 Java 打印成 System.out

这个问题在这里已经有了答案:Strangefloating-pointbehaviourinaJavaprogram[duplicate](4个答案)关闭9年前。这段代码没有像我想象的那样工作。a=-1;b=0.1;for(i=0;i在控制台上我应该看到:0.x=-1.01.x=-0.92.x=-0.83.x=-0.74.x=-0.65.x=-0.56.x=-0.47.x=-0.3...等但这是发生了什么:0.x=-1.01.x=-0.92.x=-0.83.x=-0.70000000000000014.x=-0.60000000000000015.x=-0.50000000000000

java - 在 Java 中,如何测试 `Double` 列表是否包含特定值

背景:float存在舍入问题,因此永远不要将它们与“==”进行比较。问题:在Java中,如何测试Double列表是否包含特定值。我知道各种解决方法,但我正在寻找最优雅的解决方案,大概是那些利用Java或第3方库功能的解决方案。importjava.util.ArrayList;importjava.util.List;publicclassTest{publicstaticvoidmain(String[]args){//shouldbe1.38,butendupwith1.3800000000000001Doubled1=newDouble(1.37+0.01);System.out

Java:确定两点之间的角度

好的,首先道歉,因为我知道这种问题已经被问过不止一次了。然而,即使在查看了其他问题和答案之后,我也无法让它适用于我的情况。请参阅下面的示例:我只是想计算P1和P2之间的角度,假设0度如上所示,这样我就可以将2之间的箭头指向正确的方向。所以我做了这样的事情......Pointp1=newPoint(200,300);Pointp2=newPoint(300,200);doubledifX=p2.x-p1.x;doubledifY=p2.y-p1.y;doublerotAng=Math.toDegrees(Math.atan2(difY,difX));结果为:-45,它应该是45?然而,

java - 如何在 Java 中检查用户输入是 String、double 还是 long

我是Java初学者。我想先检查用户输入是String还是Double或int。如果是字符串、double或负数,则应提示用户再次输入有效的整数。只有当用户输入有效数字时,程序才会跳转尝试。我已经思考了几个小时,但没有想出任何有用的东西。请帮忙,谢谢!importjava.util.InputMismatchException;importjava.util.Scanner;publicclassFizz{publicstaticvoidmain(String[]args){System.out.println("Pleaseenteranumber");Scannerscan=newS

java - 如何在 Intellij IDEA 中运行 Applet?

我正在尝试运行theseapplets对于我的网络类(class)。当我试图通过链接在浏览器中运行这些时,它们什么也没做。所以我决定尝试在IntelliJ中编译它们,但是当我运行代码时它什么也没做。没有返回错误消息。我唯一更改源代码的代码是添加main方法并删除包声明。以下是我试图运行的小程序:Java代码/////////////////////////////////////////LineSimApllet//writtenbyDavidGrangier,InstitutEurecom,France//david.grangier@eurecom.fr//////////////

java - 是否有等效于 ChronoUnit.between 的返回分数而不是整数?

ChronoUnit.HOURS.between(start,end)等方法返回long,因此我无法从那里获取分数。是否有替代方法可以返回分数? 最佳答案 ChronoUnit.HOURS.between(start,end)的重点是获取两个时间点之间的小时数。例如:两者之间有1或2小时,没有1.5658小时*这样的东西。如果您需要更精确,请使用另一个ChronoUnit,即分钟或秒。小数的问题是,它们通常基于10,而时间单位是基于圆(360°、2pi等)的分数,最好用整数的分数表示,例如1/4、1/8、1/2等,而不是浮点值。这里

java - 方法重载 : Single parameter vs alternating parameters

这个问题可能类似于Javaoverloadconfusion我正在阅读一本书,其中有一个关于方法重载的主题,编译器可能无法从中解析被调用的方法。书中的例子使用了带有两个参数(int,double)和(double,int)的重载方法。调用此方法如overloadedTwoParam(4,5)将导致编译器错误,因为int可以传递给double。我的问题是,如果我的参数只有一个,为什么编译器能够解析将调用哪个方法?publicclassTest{publicstaticvoidmain(String[]args){Testt=newTest();t.overloadedSinglePara