为什么更改总和顺序会返回不同的结果?
23.53 + 5.88 + 17.64
= 47.05
23.53 + 17.64 + 5.88
= 47.050000000000004
双方的Java和JavaScript的返回相同的结果.
我理解,由于浮点数用二进制表示的方式,一些有理数(如1/3 - 0.333333 ......)无法精确表示.
为什么简单地改变元素的顺序会影响结果?
我有一个 Maven 项目和几个测试类。
我想使用插件 surefire 以特定顺序运行这些测试。
例如,我有:
我想运行 1 类,然后是 2 类,然后是 3 类,最后是 4 类。
如何在 pom.xml 中指定它?
我有一个叫做MyClass
包含几个成员的类,其中一个是myString
:
public class MyClass{
//...
private String myString;
}
Run Code Online (Sandbox Code Playgroud)
现在,我有一个集合MyClass
和另一个集合String
.
我的问题是:
如何将这两个集合与流媒体进行比较?那可能吗?
我会尝试尽可能地作为succint:
考虑界面:
package com.stackoverflow;
public interface Printable {
void print();
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个实现此接口的枚举.到现在为止还挺好:
public enum MyEnum implements Printable {
ERROR,
WARNING,
SUCCESS;
@Override
public void print() {
System.out.println("Printed: " +this.name());
}
}
Run Code Online (Sandbox Code Playgroud)
我main
用以下几行创建了一个方法:
//OK! Prints 1
System.out.println(ERROR.getClass().getInterfaces().length);
//OK! Prints "Printable" (the name of the interface).
System.out.println(ERROR.getClass().getInterfaces()[0].getSimpleName());
Run Code Online (Sandbox Code Playgroud)
一切都按预期工作,对吧?现在到了奇怪的部分:
public enum MyEnum implements Printable {
ERROR,
WARNING{
//Notice the "@Override", that means that I'm overriding a superclass/interface method! No compiler errors!
@Override
public void print() {
System.out.println("I'm not printable anymore!");
} …
Run Code Online (Sandbox Code Playgroud)