きっかけは偶然に
IntelliJで気の向くままにjavaしてたら「ん?」ってなった
出力.コンソール
value = -0.0
結論
0を負の数で割ると-0.0になるっぽい
sample.java
public class Main {
public static void main(String[] args) {
double value = 0;
System.out.println("value = "+value/-1);
System.out.printf("value = %3.1f\n",value/-5);
}
}
出力.コンソール
value = -0.0
value = -0.0
対処
if文つけるかぁ
割る値に対してif文で0代入すれば表示は正しく出る
sample.java
public class Main {
public static void main(String[] args) {
double value = 0;
value /= -1;
System.out.println("対処前 = "+value);
if(value == 0) value =0;
System.out.println("対処後 = "+value);
}
}
出力.コンソール
対処前 = -0.0
対処後 = 0.0
追記2020/05/26
-0が出る可能性のある計算に「+0」すると修正できるって
sample.java
public class Main {
public static void main(String[] args) {
double value = 0;
value /= -1 +0;//+0すると-0にならない
}
}