fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. private static final float epsilon = 0.00000001f;
  11. public static void main (String[] args) throws java.lang.Exception
  12. {
  13. final float epsilon2 = epsilon * 2;
  14. final float n = -180.0f;
  15. final float result = n + epsilon * 2;
  16.  
  17. show("epsilon = ", epsilon);
  18. show("epsilon2 = ", epsilon2);
  19. show("n = ", n);
  20. show("result = ", result);
  21. }
  22.  
  23. private static void show(String label, float value) {
  24. String s = Integer.toBinaryString(Float.floatToRawIntBits(value));
  25. if (s.length() < 32) {
  26. s = "00000000000000000000000000000000".substring(s.length()) + s;
  27. }
  28. System.out.println(
  29. label +
  30. s.substring(0, 1) + // sign
  31. " " +
  32. s.substring(1, 9) + // exponent
  33. " " +
  34. s.substring(9) // significand
  35. );
  36. }
  37. }
Success #stdin #stdout 0.09s 320320KB
stdin
Standard input is empty
stdout
epsilon  = 0 01100100 01010111100110001110111
epsilon2 = 0 01100101 01010111100110001110111
n        = 1 10000110 01101000000000000000000
result   = 1 10000110 01101000000000000000000