রাউন্ডিং ত্রুটি এলোমেলো নয় এবং এটি যেভাবে প্রয়োগ করা হয় এটি ত্রুটিটি হ্রাস করার চেষ্টা করে। এর অর্থ কখনও কখনও ত্রুটিটি দৃশ্যমান হয় না, বা ত্রুটিও হয় না।
উদাহরণ হিসেবে বলা যায় 0.1
ঠিক নয় 0.1
অর্থাৎ new BigDecimal("0.1") < new BigDecimal(0.1)
কিন্তু 0.5
ঠিক1.0/2
এই প্রোগ্রামটি আপনাকে জড়িত প্রকৃত মান দেখায়।
BigDecimal _0_1 = new BigDecimal(0.1);
BigDecimal x = _0_1;
for(int i = 1; i <= 10; i ++) {
System.out.println(i+" x 0.1 is "+x+", as double "+x.doubleValue());
x = x.add(_0_1);
}
কপি করে প্রিন্ট
0.1000000000000000055511151231257827021181583404541015625, as double 0.1
0.2000000000000000111022302462515654042363166809082031250, as double 0.2
0.3000000000000000166533453693773481063544750213623046875, as double 0.30000000000000004
0.4000000000000000222044604925031308084726333618164062500, as double 0.4
0.5000000000000000277555756156289135105907917022705078125, as double 0.5
0.6000000000000000333066907387546962127089500427246093750, as double 0.6000000000000001
0.7000000000000000388578058618804789148271083831787109375, as double 0.7000000000000001
0.8000000000000000444089209850062616169452667236328125000, as double 0.8
0.9000000000000000499600361081320443190634250640869140625, as double 0.9
1.0000000000000000555111512312578270211815834045410156250, as double 1.0
দ্রষ্টব্য: এটি 0.3
সামান্য বন্ধ, তবে আপনি যখন 0.4
বিটগুলি পৌঁছান তখন 53-বিট সীমাতে ফিট করার জন্য একটিকে নীচে স্থানান্তর করতে হয় এবং ত্রুটিটি বাতিল করা হয়। আবার, একটি ত্রুটি শিহরণ জন্য ব্যাক 0.6
এবং 0.7
কিন্তু 0.8
করতে 1.0
ত্রুটি বাতিল করা হয়।
এটি 5 বার যুক্ত করার ফলে ত্রুটিটি কমিয়ে দেওয়া উচিত, এটি বাতিল করা উচিত নয়।
ত্রুটি হওয়ার কারণ সীমিত নির্ভুলতার কারণে। অর্থাৎ 53-বিট। এর অর্থ হ'ল সংখ্যাটি বড় হওয়ার সাথে সাথে আরও বিট ব্যবহার করে, বিটগুলি শেষের দিকে ফেলে দিতে হবে। এই ক্ষেত্রে গোলাকার কারণ যা আপনার পক্ষে রয়েছে causes
একটি ছোট সংখ্যা যেমন 0.1-0.0999
= => পেয়ে গেলে আপনি বিপরীত প্রভাব পেতে পারেন 1.0000000000000286E-4
এবং আপনি আগের চেয়ে আরও ত্রুটি দেখতে পাচ্ছেন।
জাভা in-এ ম্যাথ.াউন্ডে কেন (0.49999999999999994) ফিরে আসে এর একটি উদাহরণ 1 এই ক্ষেত্রে গণনায় কিছুটা ক্ষতি হ'ল উত্তরে বড় পার্থক্য দেখা দেয়।