對於x的值是什麼(x == 0)返回true?是否存在某種類型的保證金,或者當且僅當x = 0的值時,測試是否返回true?在Java中,什麼時候浮點數等於零?
1
A
回答
6
可以編寫一個簡單的方法來找到這個值。
public class FloatEqualsZero {
public static void main(String [] args) {
float x = 1;
while(x != 0 && -x != 0) {
x *= 0.1;
System.out.println(x);
}
}
}
此輸出以下:
0.1
0.01
9.999999E-4
9.999999E-5
9.999999E-6
9.999999E-7
...
1.0E-37
1.0E-38
1.0E-39
1.0E-40
1.0E-41
1.0E-42
1.0E-43
9.8E-45
1.4E-45
0.0
此(和類似的測試)表明,(X == 0),當x是0.0F或等於-0.0f
+1
...或「-0.0f」。 – OldCurmudgeon
1
實際上只爲真當它等於0.0
或-0.0
。
public void test() {
double x = 0.0;
double y = -0.0;
double z = 0.0;
test(x, y);
test(y, z);
test(x, z);
test(x, (int)y);
test(y, (int)z);
test(x, (int)z);
}
private void test(double x, double y) {
System.out.println("x=" + x + " y=" + y + " \"x == y\" is " + (x == y ? "true" : "false"));
}
private void test(double x, int y) {
System.out.println("x=" + x + " y=" + y + " \"x == y\" is " + (x == y ? "true" : "false"));
}
打印
x=0.0 y=-0.0 "x == y" is true
x=-0.0 y=0.0 "x == y" is true
x=0.0 y=0.0 "x == y" is true
x=0.0 y=0 "x == y" is true
x=-0.0 y=0 "x == y" is true
x=0.0 y=0 "x == y" is true
4
當Math.signum(x)
== 0
所有其他嘗試檢查浮動x
== 0是否可能會失敗。
但Math.signum()是如此基本,它永遠不會失敗。
相關問題
- 1. 什麼時候|不等於|?
- 2. Java-非零整數除以10等於0.0浮點?
- 3. 在Python中,小浮點數趨於零
- 4. 什麼時候obj.length不等於+ obj.length?
- 5. 爲什麼FLT_MIN等於零?
- 6. 如何數組等於到零的時候沒有在PHP
- 7. 爲什麼inline-block「steal」4px浮點數不是的時候
- 8. 我什麼時候應該重寫等方法在Java中
- 9. 爲什麼兩個正整數在劃分時等於零?
- 10. 什麼時候在Java中設置mutate?
- 11. 什麼時候在Java中使用「this」
- 12. 什麼時候View方法的Context參數不等於.getContext()
- 13. 用於負零浮點值?
- 14. EndReceive什麼時候返回零字節
- 15. 什麼時候或爲什麼是等於不是在SQL查詢中不等於相反?
- 16. 浮點是如何存儲的?它什麼時候重要?
- 17. 爲什麼用零浮點(或雙精度)數字除法不拋出java.lang.ArithmeticException:/在Java中爲零
- 18. 浮點計數,負數零?
- 19. 爲什麼accelX總是等於零?
- 20. 爲什麼cos(90)不等於零?
- 21. 浮點計數爲零時不是
- 22. 什麼時候subprocess.Popen在Python中零返回?
- 23. 浮點值等於-1。#IND
- 24. Python浮點等於奇怪
- 25. Java:爲什麼你需要在浮點數字中指定'f'?
- 26. 浮點數的意外結果等於
- 27. 零參數構造函數有什麼好處?什麼時候是理想的?
- 28. 爲什麼整數除零會導致浮點異常?
- 29. 添加零的浮點數
- 30. PHP和零值浮點數
您提問並回答同時 – newuser
@newuser沒有錯,請參閱http://stackoverflow.com/help/self-answer。 –