JavaRush /ื‘ืœื•ื’ Java /Random-HE /ื”ืžื›ืฉื™ืจ ืฉืœ ื”ืžืกืคืจื™ื ื”ืืžื™ืชื™ื™ื

ื”ืžื›ืฉื™ืจ ืฉืœ ื”ืžืกืคืจื™ื ื”ืืžื™ืชื™ื™ื

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
ืฉืœื•ื! ื‘ื”ืจืฆืื” ืฉืœ ื”ื™ื•ื ื ื“ื‘ืจ ืขืœ ืžืกืคืจื™ื ื‘ื’'ืื•ื•ื”, ื•ื‘ืื•ืคืŸ ืกืคืฆื™ืคื™ ืขืœ ืžืกืคืจื™ื ืžืžืฉื™ื™ื. ืžื›ืฉื™ืจ ื”ืžืกืคืจื™ื ื”ืืžื™ืชื™ื™ื - 1ืœื ืœื”ื™ื‘ื”ืœ! :) ืœื ื™ื”ื™ื• ืงืฉื™ื™ื ืžืชืžื˜ื™ื™ื ื‘ื”ืจืฆืื”. ื ื“ื‘ืจ ืขืœ ืžืกืคืจื™ื ืืžื™ืชื™ื™ื ืืš ื•ืจืง ืžื ืงื•ื“ืช ื”ืžื‘ื˜ ื”"ืžืชื›ื ืช" ืฉืœื ื•. ืื– ืžื” ื”ื "ืžืกืคืจื™ื ืืžื™ืชื™ื™ื"? ืžืกืคืจื™ื ืžืžืฉื™ื™ื ื”ื ืžืกืคืจื™ื ืฉื™ืฉ ืœื”ื ื—ืœืง ื—ืœืงื™ (ืฉื™ื›ื•ืœ ืœื”ื™ื•ืช ืืคืก). ื”ื ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ื—ื™ื•ื‘ื™ื™ื ืื• ืฉืœื™ืœื™ื™ื. ื”ื ื” ื›ืžื” ื“ื•ื’ืžืื•ืช: 15 56.22 0.0 1242342343445246 -232336.11 ืื™ืš ืขื•ื‘ื“ ืžืกืคืจ ืžืžืฉื™? ื“ื™ ืคืฉื•ื˜: ื”ื•ื ืžื•ืจื›ื‘ ืžื—ืœืง ืฉืœื, ื—ืœืง ืฉื‘ืจ ื•ืกื™ืžืŸ. ืขื‘ื•ืจ ืžืกืคืจื™ื ื—ื™ื•ื‘ื™ื™ื ื”ืกื™ืžืŸ ื‘ื“ืจืš ื›ืœืœ ืื™ื ื• ืžืฆื•ื™ืŸ ื‘ืžืคื•ืจืฉ, ืืš ืขื‘ื•ืจ ืžืกืคืจื™ื ืฉืœื™ืœื™ื™ื ื”ื•ื ืžืฆื•ื™ืŸ. ื‘ืขื‘ืจ, ื‘ื“ืงื ื• ื‘ืคื™ืจื•ื˜ ืื™ืœื• ืคืขื•ืœื•ืช ืขืœ ืžืกืคืจื™ื ื ื™ืชืŸ ืœื‘ืฆืข ื‘ื’'ืื•ื•ื”. ื‘ื™ื ื™ื”ื ื”ื™ื• ื”ืจื‘ื” ืคืขื•ืœื•ืช ืžืชืžื˜ื™ื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช - ื—ื™ื‘ื•ืจ, ื—ื™ืกื•ืจ ื•ื›ื•'. ื”ื™ื• ื’ื ื›ืžื” ื—ื“ืฉื•ืช ืขื‘ื•ืจืš: ืœืžืฉืœ, ืฉืืจ ื”ื—ืœื•ืงื”. ืื‘ืœ ืื™ืš ื‘ื“ื™ื•ืง ืขื•ื‘ื“ืช ืขื‘ื•ื“ื” ืขื ืžืกืคืจื™ื ื‘ืชื•ืš ืžื—ืฉื‘? ื‘ืื™ื–ื• ืฆื•ืจื” ื”ื ืžืื•ื—ืกื ื™ื ื‘ื–ื™ื›ืจื•ืŸ?

ืื—ืกื•ืŸ ืžืกืคืจื™ื ืืžื™ืชื™ื™ื ื‘ื–ื™ื›ืจื•ืŸ

ืื ื™ ื—ื•ืฉื‘ ืฉื–ื” ืœื ื™ื”ื™ื” ืชื’ืœื™ืช ืขื‘ื•ืจืš ืฉืžืกืคืจื™ื ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ื’ื“ื•ืœื™ื ื•ืงื˜ื ื™ื :) ืืคืฉืจ ืœื”ืฉื•ื•ืช ืื•ืชื ืื—ื“ ืขื ื”ืฉื ื™. ืœื“ื•ื’ืžื”, ื”ืžืกืคืจ 100 ืงื˜ืŸ ืžื”ืžืกืคืจ 423324. ื”ืื ื–ื” ืžืฉืคื™ืข ืขืœ ืคืขื•ืœืช ื”ืžื—ืฉื‘ ื•ื”ืชื•ื›ื ื™ืช ืฉืœื ื•? ื”ืืžืช ืฉื›ืŸ . ื›ืœ ืžืกืคืจ ืžื™ื•ืฆื’ ื‘-Java ืขืœ ื™ื“ื™ ื˜ื•ื•ื— ืกืคืฆื™ืคื™ ืฉืœ ืขืจื›ื™ื :
ืกื•ึผื’ ื’ื•ื“ืœ ื–ื™ื›ืจื•ืŸ (ืกื™ื‘ื™ื•ืช) ื˜ื•ื•ื— ืขืจื›ื™ื
byte 8 ื‘ื™ื˜ -128 ืขื“ 127
short 16 ื‘ื™ื˜ -32768 ืขื“ 32767
char 16 ื‘ื™ื˜ ืžืกืคืจ ืฉืœื ืœืœื ืกื™ืžืŸ ื”ืžื™ื™ืฆื’ ืชื• UTF-16 (ืื•ืชื™ื•ืช ื•ืžืกืคืจื™ื)
int 32 ื‘ื™ื˜ื™ื ืž-2147483648 ืœ-2147483647
long 64 ื‘ื™ื˜ื™ื ืž-9223372036854775808 ืœ-9223372036854775807
float 32 ื‘ื™ื˜ื™ื ืž-2 -149 ืขื“ (2-2 -23 )*2 127
double 64 ื‘ื™ื˜ื™ื ืž-2 -1074 ืขื“ (2-2 -52 )*2 1023
ื”ื™ื•ื ื ื“ื‘ืจ ืขืœ ืฉื ื™ ื”ืกื•ื’ื™ื ื”ืื—ืจื•ื ื™ื - floatื• double. ืฉื ื™ื”ื ืžื‘ืฆืขื™ื ืืช ืื•ืชื” ืžืฉื™ืžื” - ืžื™ื™ืฆื’ื™ื ืžืกืคืจื™ื ืฉื‘ืจื™ื. ื”ื ื’ื ื ืงืจืื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžืื•ื“ " ืžืกืคืจื™ ื ืงื•ื“ื” ืฆืคื”" . ื–ื›ื•ืจ ืืช ื”ืžื•ื ื— ื”ื–ื” ืœืขืชื™ื“ :) ืœื“ื•ื’ืžื”, ื”ืžืกืคืจ 2.3333 ืื• 134.1212121212. ื“ื™ ืžื•ื–ืจ. ื”ืจื™ ืžืกืชื‘ืจ ืฉืื™ืŸ ื”ื‘ื“ืœ ื‘ื™ืŸ ืฉื ื™ ื”ืกื•ื’ื™ื ื”ืœืœื•, ืžืื—ืจ ืฉื”ื ืžื‘ืฆืขื™ื ืืช ืื•ืชื” ืžืฉื™ืžื”? ืื‘ืœ ื™ืฉ ื”ื‘ื“ืœ. ืฉื™ืžื• ืœื‘ ืœืขืžื•ื“ื” "ื’ื•ื“ืœ ื‘ื–ื™ื›ืจื•ืŸ" ื‘ื˜ื‘ืœื” ืœืžืขืœื”. ื›ืœ ื”ืžืกืคืจื™ื (ื•ืœื ืจืง ืžืกืคืจื™ื - ื›ืœ ื”ืžื™ื“ืข ื‘ืื•ืคืŸ ื›ืœืœื™) ื ืฉืžืจื™ื ื‘ื–ื™ื›ืจื•ืŸ ื”ืžื—ืฉื‘ ื‘ืฆื•ืจื” ืฉืœ ื‘ื™ื˜ื™ื. ืžืขื˜ ื”ื•ื ื™ื—ื™ื“ืช ื”ืžื™ื“ืข ื”ืงื˜ื ื” ื‘ื™ื•ืชืจ. ื–ื” ื“ื™ ืคืฉื•ื˜. ื›ืœ ืกื™ื‘ื™ื•ืช ืฉื•ื•ื” ืœ-0 ืื• ืœ-1. ื•ื”ืžื™ืœื” " bit " ืขืฆืžื” ื‘ืื” ืžื”ืื ื’ืœื™ืช " ืกืคืจื” ื‘ื™ื ืืจื™ืช " - ืžืกืคืจ ื‘ื™ื ืืจื™. ืื ื™ ื—ื•ืฉื‘ ืฉื‘ื˜ื— ืฉืžืขืชื ืขืœ ืงื™ื•ืžื” ืฉืœ ืžืขืจื›ืช ื”ืžืกืคืจื™ื ื”ื‘ื™ื ืืจื™ืช ื‘ืžืชืžื˜ื™ืงื”. ื›ืœ ืžืกืคืจ ืขืฉืจื•ื ื™ ืฉืื ื• ืžื›ื™ืจื™ื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื™ื•ืฆื’ ื›ืงื‘ื•ืฆื” ืฉืœ ืื—ื“ื™ื ื•ืืคืกื™ื. ืœื“ื•ื’ืžื”, ื”ืžืกืคืจ 584.32 ื‘ื‘ื™ื ืืจื™ ื™ื™ืจืื” ื›ืš: 100100100001010001111 . ื›ืœ ืื—ื“ ื•ืืคืก ื‘ืžืกืคืจ ื–ื” ื”ื•ื ื‘ื™ื˜ ื ืคืจื“. ื›ืขืช ืืชื” ืืžื•ืจ ืœื”ื™ื•ืช ื‘ืจื•ืจ ื™ื•ืชืจ ืœื’ื‘ื™ ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ืกื•ื’ื™ ื”ื ืชื•ื ื™ื. ืœื“ื•ื’ืžื”, ืื ื ื™ืฆื•ืจ ืžืกืคืจ ืกื•ื’ื™ื float, ื™ืฉ ืœื ื• ืจืง 32 ืกื™ื‘ื™ื•ืช ืœืจืฉื•ืชื ื•. ื›ืฉื™ื•ืฆืจื™ื ืžืกืคืจ, floatื–ื” ื‘ื“ื™ื•ืง ื›ืžื” ืžืงื•ื ื™ื•ืงืฆื” ืœื• ื‘ื–ื™ื›ืจื•ืŸ ื”ืžื—ืฉื‘. ืื ื ืจืฆื” ืœื™ืฆื•ืจ ืืช ื”ืžืกืคืจ 123456789.65656565656565, ื‘ื‘ื™ื ืืจื™ ื–ื” ื™ื™ืจืื” ื›ืš: 111010110111100111010001010110101000000 . ื”ื•ื ืžื•ืจื›ื‘ ืž-38 ืื—ื“ื•ืช ื•ืืคืกื™ื, ื›ืœื•ืžืจ, ื™ืฉ ืฆื•ืจืš ื‘-38 ืกื™ื‘ื™ื•ืช ื›ื“ื™ ืœืื—ืกืŸ ืื•ืชื• ื‘ื–ื™ื›ืจื•ืŸ. floatื”ืžืกืคืจ ื”ื–ื” ืคืฉื•ื˜ ืœื "ื™ืชืื™ื" ืœืกื•ื’ ! ืœื›ืŸ, ื ื™ืชืŸ ืœื™ื™ืฆื’ ืืช ื”ืžืกืคืจ 123456789 ื›ืกื•ื’ double. ืœืื—ืกืŸ ืื•ืชื• ืžื•ืงืฆื™ื ืขื“ 64 ื‘ื™ื˜ื™ื: ื–ื” ืžืชืื™ื ืœื ื•! ื›ืžื•ื‘ืŸ ืฉื’ื ื˜ื•ื•ื— ื”ืขืจื›ื™ื ื™ืชืื™ื. ืžื˜ืขืžื™ ื ื•ื—ื•ืช, ืืชื” ื™ื›ื•ืœ ืœื—ืฉื•ื‘ ืขืœ ืžืกืคืจ ื›ืงื•ืคืกื” ืงื˜ื ื” ืขื ืชืื™ื. ืื ื™ืฉ ืžืกืคื™ืง ืชืื™ื ืœืื—ืกื•ืŸ ื›ืœ ื‘ื™ื˜, ืื– ืกื•ื’ ื”ื ืชื•ื ื™ื ื ื‘ื—ืจ ื ื›ื•ืŸ :) ืžื›ืฉื™ืจ ื”ืžืกืคืจื™ื ื”ืืžื™ืชื™ื™ื - 2ื›ืžื•ื‘ืŸ, ื›ืžื•ื™ื•ืช ืฉื•ื ื•ืช ืฉืœ ื–ื™ื›ืจื•ืŸ ืฉื”ื•ืงืฆื” ืžืฉืคื™ืขื•ืช ื’ื ืขืœ ื”ืžืกืคืจ ืขืฆืžื•. ืฉื™ืžื• ืœื‘ ืฉืœืกื•ื’ื™ื floatื™ืฉ doubleื˜ื•ื•ื—ื™ ืขืจื›ื™ื ืฉื•ื ื™ื. ืžื” ื–ื” ืื•ืžืจ ื‘ืคื•ืขืœ? ืžืกืคืจ doubleื™ื›ื•ืœ ืœื‘ื˜ื ื“ื™ื•ืง ื’ื“ื•ืœ ื™ื•ืชืจ ืžืžืกืคืจ float. ืœืžืกืคืจื™ ื ืงื•ื“ื” ืฆืคื” ืฉืœ 32 ืกื™ื‘ื™ื•ืช (ื‘-Java ื–ื” ื‘ื“ื™ื•ืง ื”ืกื•ื’ float) ื™ืฉ ื“ื™ื•ืง ืฉืœ ื›-24 ืกื™ื‘ื™ื•ืช, ื›ืœื•ืžืจ ื‘ืขืจืš 7 ืžืงื•ืžื•ืช ืขืฉืจื•ื ื™ื™ื. ื•ืœืžืกืคืจื™ื ืฉืœ 64 ืกื™ื‘ื™ื•ืช (ื‘-Java ื–ื” ื”ืกื•ื’ double) ื™ืฉ ื“ื™ื•ืง ืฉืœ ื›-53 ืกื™ื‘ื™ื•ืช, ื›ืœื•ืžืจ ื›-16 ืžืงื•ืžื•ืช ืขืฉืจื•ื ื™ื™ื. ื”ื ื” ื“ื•ื’ืžื” ืฉืžื“ื’ื™ืžื” ื”ื™ื˜ื‘ ืืช ื”ื”ื‘ื“ืœ ื”ื–ื”:
public class Main {

   public static void main(String[] args)  {

       float f = 0.0f;
       for (int i=1; i <= 7; i++) {
           f += 0.1111111111111111;
       }

       System.out.println(f);
   }
}
ืžื” ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืงื‘ืœ ื›ืืŸ ื›ืชื•ืฆืื” ืžื›ืš? ื ืจืื” ืฉื”ื›ืœ ื“ื™ ืคืฉื•ื˜. ื™ืฉ ืœื ื• ืืช ื”ืžืกืคืจ 0.0, ื•ืื ื• ืžื•ืกื™ืคื™ื ืœื• 0.1111111111111111 7 ืคืขืžื™ื ื‘ืจืฆื™ืคื•ืช. ื”ืชื•ืฆืื” ืฆืจื™ื›ื” ืœื”ื™ื•ืช 0.77777777777777777. ืื‘ืœ ื™ืฆืจื ื• ืžืกืคืจ float. ื’ื•ื“ืœื• ืžื•ื’ื‘ืœ ืœ-32 ืกื™ื‘ื™ื•ืช, ื•ื›ืคื™ ืฉืืžืจื ื• ืงื•ื“ื, ื”ื•ื ืžืกื•ื’ืœ ืœื”ืฆื™ื’ ืžืกืคืจ ืขื“ ื‘ืขืจืš ื”-7 ื”ืขืฉืจื•ื ื™. ืœื›ืŸ, ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ื”ืชื•ืฆืื” ืฉื ืงื‘ืœ ื‘ืงื•ื ืกื•ืœื” ืชื”ื™ื” ืฉื•ื ื” ืžืžื” ืฉืฆื™ืคื™ื ื•:

0.7777778
ื ืจืื” ื”ื™ื” ืฉื”ืžืกืคืจ "ื ื—ืชืš". ืืชื” ื›ื‘ืจ ื™ื•ื“ืข ืื™ืš ื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื ื‘ื–ื™ื›ืจื•ืŸ - ื‘ืฆื•ืจื” ืฉืœ ื‘ื™ื˜ื™ื, ืื– ื–ื” ืœื ืืžื•ืจ ืœื”ืคืชื™ืข ืื•ืชืš. ื‘ืจื•ืจ ืœืžื” ื–ื” ืงืจื”: ื”ืชื•ืฆืื” 0.77777777777777777 ืคืฉื•ื˜ ืœื ื”ืชืื™ืžื” ืœ-32 ื”ืกื™ื‘ื™ื•ืช ืฉื”ื•ืงืฆื• ืœื ื•, ืื– ื”ื™ื ื ืงื˜ืขื” ื›ื“ื™ ืœื”ืฉืชืœื‘ ื‘ืžืฉืชื ื” ื”ื˜ื™ืคื•ืก float:) ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืฉื ื•ืช ืืช ืกื•ื’ ื”ืžืฉืชื ื” ืœ- doubleื‘ื“ื•ื’ืžื” ืฉืœื ื•, ื•ืœืื—ืจ ืžื›ืŸ ืืช ื”ืกื•ืคื™ ื”ืชื•ืฆืื” ืœื ืชืงื•ืฆืจ:
public class Main {

   public static void main(String[] args)  {

       double f = 0.0;
       for (int i=1; i <= 7; i++) {
           f += 0.1111111111111111;
       }

       System.out.println(f);
   }
}

0.7777777777777779
ื™ืฉ ื›ื‘ืจ 16 ืžืงื•ืžื•ืช ืขืฉืจื•ื ื™ื™ื, ื”ืชื•ืฆืื” "ืžืชืื™ืžื”" ืœ-64 ืกื™ื‘ื™ื•ืช. ืื’ื‘, ืื•ืœื™ ืฉืžืชื ืœื‘ ืฉื‘ืฉื ื™ ื”ืžืงืจื™ื ื”ืชื•ืฆืื•ืช ืœื ื”ื™ื• ืœื’ืžืจื™ ื ื›ื•ื ื•ืช? ื”ื—ื™ืฉื•ื‘ ื ืขืฉื” ื‘ืฉื’ื™ืื•ืช ืงืœื•ืช. ืขืœ ื”ืกื™ื‘ื•ืช ืœื›ืš ื ื“ื‘ืจ ืœื”ืœืŸ :) ืขื›ืฉื™ื• ื‘ื•ืื• ื ื’ื™ื“ ื›ืžื” ืžื™ืœื™ื ืขืœ ืื™ืš ืืคืฉืจ ืœื”ืฉื•ื•ืช ืžืกืคืจื™ื ื–ื” ืขื ื–ื”.

ื”ืฉื•ื•ืื” ืฉืœ ืžืกืคืจื™ื ืžืžืฉื™ื™ื

ื—ืœืงื™ืช ื›ื‘ืจ ื ื’ืขื ื• ื‘ื ื•ืฉื ื”ื–ื” ื‘ื”ืจืฆืื” ื”ืื—ืจื•ื ื”, ื›ืฉื“ื™ื‘ืจื ื• ืขืœ ืคืขื•ืœื•ืช ื”ืฉื•ื•ืื”. ืœื ื ื ืชื— ืžื—ื“ืฉ ืคืขื•ืœื•ืช ื›ื’ื•ืŸ >, <, >=. <=ื”ื‘ื” ื ืกืชื›ืœ ื‘ืžืงื•ื ื–ืืช ืขืœ ื“ื•ื’ืžื” ืžืขื ื™ื™ื ืช ื™ื•ืชืจ:
public class Main {

   public static void main(String[] args)  {

       double f = 0.0;
       for (int i=1; i <= 10; i++) {
           f += 0.1;
       }

       System.out.println(f);
   }
}
ืื™ื–ื” ืžืกืคืจ ืœื“ืขืชืš ื™ื•ืฆื’ ืขืœ ื”ืžืกืš? ื”ืชืฉื•ื‘ื” ื”ื”ื’ื™ื•ื ื™ืช ืชื”ื™ื” ื”ืชืฉื•ื‘ื”: ื”ืžืกืคืจ 1. ืื ื—ื ื• ืžืชื—ื™ืœื™ื ืœืกืคื•ืจ ืžื”ืžืกืคืจ 0.0 ื•ืžื•ืกื™ืคื™ื ืœื• ื‘ืจืฆื™ืคื•ืช 0.1 ืขืฉืจ ืคืขืžื™ื ื‘ืจืฆื™ืคื•ืช. ื”ื›ืœ ื ืจืื” ื ื›ื•ืŸ, ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ืื—ื“. ื ืกื” ืœื”ืจื™ืฅ ืืช ื”ืงื•ื“ ื”ื–ื”, ื•ื”ืชืฉื•ื‘ื” ืชืคืชื™ืข ืื•ืชืš ืžืื•ื“ :) ืคืœื˜ ืžืกื•ืฃ:

0.9999999999999999
ืื‘ืœ ืžื“ื•ืข ืื™ืจืขื” ืฉื’ื™ืื” ื‘ื“ื•ื’ืžื” ื›ืœ ื›ืš ืคืฉื•ื˜ื”? O_o ื›ืืŸ ืืคื™ืœื• ืชืœืžื™ื“ ื›ื™ืชื” ื”' ื™ื›ื•ืœ ืœืขื ื•ืช ื ื›ื•ืŸ ื‘ืงืœื•ืช, ืื‘ืœ ืชื•ื›ื ื™ืช Java ื”ื ื™ื‘ื” ืชื•ืฆืื” ืœื ืžื“ื•ื™ืงืช. "ืœื ืžื“ื•ื™ืง" ื”ื™ื ืžื™ืœื” ื˜ื•ื‘ื” ื™ื•ืชืจ ื›ืืŸ ืžืืฉืจ "ืœื ื ื›ื•ืŸ". ืขื“ื™ื™ืŸ ืงื™ื‘ืœื ื• ืžืกืคืจ ืงืจื•ื‘ ืžืื•ื“ ืœืื—ื“, ื•ืœื ืจืง ืื™ื–ื” ืขืจืš ืืงืจืื™ :) ื”ื•ื ืฉื•ื ื” ืžื”ื ื›ื•ืŸ ืžืžืฉ ื‘ืžื™ืœื™ืžื˜ืจ. ืื‘ืœ ืœืžื”? ืื•ืœื™ ื–ื• ืจืง ื˜ืขื•ืช ื—ื“ ืคืขืžื™ืช. ืื•ืœื™ ื”ืžื—ืฉื‘ ืงืจืก? ื‘ื•ืื• ื ื ืกื” ืœื›ืชื•ื‘ ื“ื•ื’ืžื” ื ื•ืกืคืช.
public class Main {

   public static void main(String[] args)  {

       //add 0.1 to zero eleven times in a row
       double f1 = 0.0;
       for (int i = 1; i <= 11; i++) {
           f1 += .1;
       }

       // Multiply 0.1 by 11
       double f2 = 0.1 * 11;

       //should be the same - 1.1 in both cases
       System.out.println("f1 = " + f1);
       System.out.println("f2 = " + f2);

       // Let's check!
       if (f1 == f2)
           System.out.println("f1 and f2 are equal!");
       else
           System.out.println("f1 and f2 are not equal!");
   }
}
ืคืœื˜ ืžืกื•ืฃ:

f1 = 1.0999999999999999
f2 = 1.1
f1 ะธ f2 ะฝะต ั€ะฐะฒะฝั‹!
ืื– ื‘ืจื•ืจ ืฉื–ื” ืœื ืขื ื™ื™ืŸ ืฉืœ ืชืงืœื•ืช ืžื—ืฉื‘ :) ืžื” ืงื•ืจื”? ืฉื’ื™ืื•ืช ื›ืžื• ืืœื” ืงืฉื•ืจื•ืช ืœืื•ืคืŸ ืฉื‘ื• ืžืกืคืจื™ื ืžื™ื•ืฆื’ื™ื ื‘ืฆื•ืจื” ื‘ื™ื ืืจื™ืช ื‘ื–ื™ื›ืจื•ืŸ ื”ืžื—ืฉื‘. ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉื‘ืžืขืจื›ืช ื”ื‘ื™ื ืืจื™ืช ืื™ ืืคืฉืจ ืœื™ื™ืฆื’ ื‘ืžื“ื•ื™ืง ืืช ื”ืžืกืคืจ 0.1 . ืื’ื‘, ื’ื ืœืฉื™ื˜ื” ื”ืขืฉืจื•ื ื™ืช ื™ืฉ ื‘ืขื™ื” ื“ื•ืžื”: ืื™ ืืคืฉืจ ืœื™ื™ืฆื’ ืฉื‘ืจื™ื ื ื›ื•ืŸ (ื•ื‘ืžืงื•ื โ…“ ื ืงื‘ืœ 0.333333333333333..., ื’ื ื–ื• ืœื ืœื’ืžืจื™ ื”ืชื•ืฆืื” ื”ื ื›ื•ื ื”). ื–ื” ื ืจืื” ื›ืžื• ืคืขื•ื˜: ืขื ื—ื™ืฉื•ื‘ื™ื ื›ืืœื”, ื”ื”ื‘ื“ืœ ื™ื›ื•ืœ ืœื”ื™ื•ืช ื—ืœืง ืžืื” ืืœืฃ (0.00001) ืื• ืืคื™ืœื• ืคื—ื•ืช. ืื‘ืœ ืžื” ืื ื›ืœ ื”ืชื•ืฆืื” ืฉืœ ืชื•ื›ื ื™ืช Very Serious ืฉืœืš ืชืœื•ื™ื” ื‘ื”ืฉื•ื•ืื” ื”ื–ื•?
if (f1 == f2)
   System.out.println("Rocket flies into space");
else
   System.out.println("The launch is canceled, everyone goes home");
ื‘ืจื•ืจ ืฉืฆื™ืคื™ื ื• ืฉืฉื ื™ ื”ืžืกืคืจื™ื ื™ื”ื™ื• ืฉื•ื•ื™ื, ืื‘ืœ ื‘ื’ืœืœ ืขื™ืฆื•ื‘ ื”ื–ื™ื›ืจื•ืŸ ื”ืคื ื™ืžื™, ื‘ื™ื˜ืœื ื• ืืช ืฉื™ื’ื•ืจ ื”ืจืงื˜ื”. ืžื›ืฉื™ืจ ื”ืžืกืคืจื™ื ื”ืืžื™ืชื™ื™ื - 3ืื ื›ืŸ, ืขืœื™ื ื• ืœื”ื—ืœื™ื˜ ื›ื™ืฆื“ ืœื”ืฉื•ื•ืช ื‘ื™ืŸ ืฉื ื™ ืžืกืคืจื™ ื ืงื•ื“ื” ืฆืคื” ื›ืš ืฉืชื•ืฆืืช ื”ื”ืฉื•ื•ืื” ืชื”ื™ื” ื™ื•ืชืจ... ืืžืžืž... ืฆืคื•ื™ื”. ืื–, ื›ื‘ืจ ืœืžื“ื ื• ื›ืœืœ ืžืก' 1 ื‘ืขืช ื”ืฉื•ื•ืืช ืžืกืคืจื™ื ืžืžืฉื™ื™ื: ืœืขื•ืœื ืืœ ืชืฉืชืžืฉ ==ื‘ืžืกืคืจื™ ื ืงื•ื“ื” ืฆืคื” ื‘ืขืช ื”ืฉื•ื•ืืช ืžืกืคืจื™ื ืžืžืฉื™ื™ื. ืื•ืงื™ื™, ืื ื™ ื—ื•ืฉื‘ ืฉื–ื” ืžืกืคื™ืง ื“ื•ื’ืžืื•ืช ืจืขื•ืช :) ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื“ื•ื’ืžื” ื˜ื•ื‘ื”!
public class Main {

   public static void main(String[] args)  {

       final double threshold = 0.0001;

       //add 0.1 to zero eleven times in a row
       double f1 = .0;
       for (int i = 1; i <= 11; i++) {
           f1 += .1;
       }

       // Multiply 0.1 by 11
       double f2 = .1 * 11;

       System.out.println("f1 = " + f1);
       System.out.println("f2 = " + f2);

       if (Math.abs(f1 - f2) < threshold)
           System.out.println("f1 and f2 are equal");
       else
           System.out.println("f1 and f2 are not equal");
   }
}
ื›ืืŸ ืื ื—ื ื• ื‘ืขืฆื ืขื•ืฉื™ื ืืช ืื•ืชื• ื”ื“ื‘ืจ, ืื‘ืœ ืžืฉื ื™ื ืืช ื”ื“ืจืš ืฉื‘ื” ืื ื—ื ื• ืžืฉื•ื•ื™ื ืืช ื”ืžืกืคืจื™ื. ื™ืฉ ืœื ื• ืžืกืคืจ "ืกืฃ" ืžื™ื•ื—ื“ - 0.0001, ืขืฉืจืช ืืœืคื™ื ืื—ืช. ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื–ื” ืฉื•ื ื”. ื–ื” ืชืœื•ื™ ื‘ืžื™ื“ืช ื”ื”ืฉื•ื•ืื” ื”ืžื“ื•ื™ืงืช ืฉืืชื” ืฆืจื™ืš ื‘ืžืงืจื” ืžืกื•ื™ื. ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ืืช ื–ื” ื’ื“ื•ืœ ืื• ืงื˜ืŸ ื™ื•ืชืจ. ื‘ืืžืฆืขื•ืช ื”ืฉื™ื˜ื”, Math.abs()ื ืงื‘ืœ ืืช ื”ืžื•ื“ื•ืœื•ืก ืฉืœ ืžืกืคืจ. ื”ืžื•ื“ื•ืœื•ืก ื”ื•ื ื”ืขืจืš ืฉืœ ืžืกืคืจ ืœืœื ืงืฉืจ ืœืกื™ืžืŸ. ืœื“ื•ื’ืžื”, ื”ืžืกืคืจื™ื -5 ื•-5 ื™ื”ื™ื• ื‘ืขืœื™ ืื•ืชื• ืžื•ื“ื•ืœื•ืก ื•ื”ื ื™ื”ื™ื• ืฉื•ื•ื™ื ืœ-5. ื ื—ืกืจ ืืช ื”ืžืกืคืจ ื”ืฉื ื™ ืžื”ืจืืฉื•ืŸ, ื•ืื ื”ืชื•ืฆืื” ื”ืžืชืงื‘ืœืช, ืœืœื ืงืฉืจ ืœืกื™ืžืŸ, ืงื˜ื ื” ืžื”ืกืฃ ืฉื”ื’ื“ืจื ื•, ืื– ื”ืžืกืคืจื™ื ืฉืœื ื• ืฉื•ื•ื™ื. ื‘ื›ืœ ืžืงืจื”, ื”ื ืฉื•ื•ื™ื ืœืžื™ื“ืช ื”ื“ื™ื•ืง ืฉืงื‘ืขื ื• ื‘ืืžืฆืขื•ืช "ืžืกืคืจ ื”ืกืฃ" ืฉืœื ื• , ื›ืœื•ืžืจ, ืœื›ืœ ื”ืคื—ื•ืช ื”ื ืฉื•ื•ื™ื ืขื“ ืœืขืฉืจืช ืืœืคื™ื ืื—ืช. ืฉื™ื˜ืช ื”ืฉื•ื•ืื” ื–ื• ืชื—ืกื•ืš ืžืžืš ืืช ื”ื”ืชื ื”ื’ื•ืช ื”ื‘ืœืชื™ ืฆืคื•ื™ื” ืฉืจืื™ื ื• ื‘ืžืงืจื” ืฉืœ ==. ื“ืจืš ื˜ื•ื‘ื” ื ื•ืกืคืช ืœื”ืฉื•ื•ืช ืžืกืคืจื™ื ืืžื™ืชื™ื™ื ื”ื™ื ืœื”ืฉืชืžืฉ ื‘ืžื—ืœืงื” ืžื™ื•ื—ื“ืช BigDecimal. ืžื—ืœืงื” ื–ื• ื ื•ืฆืจื” ื‘ืžื™ื•ื—ื“ ื›ื“ื™ ืœืื—ืกืŸ ืžืกืคืจื™ื ื’ื“ื•ืœื™ื ืžืื•ื“ ืขื ื—ืœืง ื—ืœืงื™. ืฉืœื ื›ืžื• doubleื• float, ื‘ืขืช ืฉื™ืžื•ืฉ BigDecimalื‘ื—ื™ื‘ื•ืจ, ื—ื™ืกื•ืจ ื•ืคืขื•ืœื•ืช ืžืชืžื˜ื™ื•ืช ืื—ืจื•ืช ืžืชื‘ืฆืขื•ืช ืœื ื‘ืืžืฆืขื•ืช ืื•ืคืจื˜ื•ืจื™ื ( +-ื•ื›ื•'), ืืœื ื‘ืืžืฆืขื•ืช ืฉื™ื˜ื•ืช. ื›ืš ื–ื” ื™ื™ืจืื” ื‘ืžืงืจื” ืฉืœื ื•:
import java.math.BigDecimal;

public class Main {

   public static void main(String[] args)  {

       /*Create two BigDecimal objects - zero and 0.1.
       We do the same thing as before - add 0.1 to zero 11 times in a row
       In the BigDecimal class, addition is done using the add () method */
       BigDecimal f1 = new BigDecimal(0.0);
       BigDecimal pointOne = new BigDecimal(0.1);
       for (int i = 1; i <= 11; i++) {
           f1 = f1.add(pointOne);
       }

       /*Nothing has changed here either: create two BigDecimal objects
       and multiply 0.1 by 11
       In the BigDecimal class, multiplication is done using the multiply() method*/
       BigDecimal f2 = new BigDecimal(0.1);
       BigDecimal eleven = new BigDecimal(11);
       f2 = f2.multiply(eleven);

       System.out.println("f1 = " + f1);
       System.out.println("f2 = " + f2);

       /*Another feature of BigDecimal is that number objects need to be compared with each other
       using the special compareTo() method*/
       if (f1.compareTo(f2) == 0)
           System.out.println("f1 and f2 are equal");
       else
           System.out.println("f1 and f2 are not equal");
   }
}
ืื™ื–ื” ืกื•ื’ ืฉืœ ืคืœื˜ ืงื•ื ืกื•ืœื” ื ืงื‘ืœ?

f1 = 1.1000000000000000610622663543836097232997417449951171875
f2 = 1.1000000000000000610622663543836097232997417449951171875
f1 ะธ f2 ั€ะฐะฒะฝั‹
ืงื™ื‘ืœื ื• ื‘ื“ื™ื•ืง ืืช ื”ืชื•ืฆืื” ืฉืฆื™ืคื™ื ื• ืœื”. ื•ืฉื™ืžื• ืœื‘ ืขื“ ื›ืžื” ื”ื™ื• ื”ืžืกืคืจื™ื ืฉืœื ื• ืžื“ื•ื™ืงื™ื, ื•ื›ืžื” ืžืงื•ืžื•ืช ืขืฉืจื•ื ื™ื™ื ืžืชืื™ืžื™ื ืœื”ื! ื”ืจื‘ื” ื™ื•ืชืจ ืžืืฉืจ ื‘ floatื•ืืคื™ืœื• ื‘ double! ื–ื›ืจื• ืืช ื”ืฉื™ืขื•ืจ BigDecimalืœืขืชื™ื“, ื‘ื”ื—ืœื˜ ืชืฆื˜ืจื›ื• ืื•ืชื• :) ืคื™ื•! ื”ื”ืจืฆืื” ื”ื™ื™ืชื” ื“ื™ ืืจื•ื›ื”, ืื‘ืœ ืขืฉื™ืช ืืช ื–ื”: ื›ืœ ื”ื›ื‘ื•ื“! :) ื ืชืจืื” ื‘ืฉื™ืขื•ืจ ื”ื‘ื, ืžืชื›ื ืช ืขืชื™ื“ื™!
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION