এক্সেলে, আমি যখন 22222.09482 প্রবেশ করি তখন আমি সূত্র বারে 22222.0948199999 নম্বরটি দেখতে পাই


28

আপনি কি দয়া করে সহায়তা করতে পারেন - যেহেতু আমার একটি উদ্ভট পরিস্থিতি আছে যে যখন আমি ঘরে 22222.09482 নম্বরটি প্রবেশ করি তখন আমি সূত্র বারে একটি আলাদা নম্বর 22222.0948199999 দেখতে পাই। নীচে সমস্যার স্ন্যাপশট দেওয়া আছে।

নমুনা ত্রুটি

আমি নিম্নলিখিত সংখ্যাগুলি প্রবেশ করার সময় আমি একই আচরণ দেখি:

22222.09482
33333.09482
44444.09482
55555.09482

তবে যখন আমি 11111.09482 এবং 66666.09482, 77777.09482 .. 99999.09482 অবধি প্রবেশ করি তখন তারা সঠিকভাবে প্রদর্শন করে। আমি নিশ্চিত নই যে এটি রাউন্ডিংয়ের সাথে সম্পর্কিত? আমি কোনও রাউন্ডিং প্রোফাইল সেটআপ করি নি। আপনি দয়া করে সমস্যা সমাধানে আমাকে সহায়তা করতে পারেন?


1
ঝরঝরে সন্ধান, আমার জন্য একই - আপনি কি কেবল ব্যবহার করতে পারেন ROUND()? =ROUND(A1,5), তাহলে মানগুলি হিসাবে ডেটা অনুলিপি / আটকান এবং আসল নম্বরগুলি সরাবেন?
ব্রুসওয়েইন

1
ব্রুস ওয়াইন, আকর্ষণীয়ভাবে ROUND()সঠিক অঙ্কগুলি দেখায় তবে অনুলিপি / পেস্টটি মূল ইস্যুতে ফিরে আসে!
রে জুনা 21

1
@ রেয়েজুনা - তারপরে প্যাস্ট করা ROUND(A1,5)মানগুলি আবার করুন। তারপরে এগুলিকে মান হিসাবে কপি / পেস্ট করুন এবং Round()তারপরে অনুলিপি / পেস্ট করুন। ...: পি ... এটি আকর্ষণীয় এবং দেখে মনে হচ্ছে @ ইউজেনআরাইক এর যুক্তি আছে। সুন্দর প্রশ্ন!
ব্রুসওয়েইন

1
আপনি কি 22222.09482 এবং 22222.0948199999 এর মধ্যে পার্থক্যটি সম্পর্কে সচেতন? এটি 100 ট্রিলিয়নে 5 অংশের পার্থক্য।
রাসেল বোরোগোভ

4
ভাসমান পয়েন্ট গণিত কি ভেঙে গেছে? । তবে এটি সম্ভবত একটি বাগ রয়েছে, যেহেতু doubleযথেষ্ট নির্ভুলতা রয়েছে যে গোলাকার যখন বেশিরভাগ লোকের প্রত্যাশায় সঠিক মানগুলি দেখায়
ফুক্লভ

উত্তর:


31

এটি একটি বাগ।

অন্যান্য উত্তর অনুসারে এক্সেল সাধারণ আইইইই ডাবল-স্পষ্টতা উপস্থাপনা ব্যবহার করে। এর যথার্থতা 53 টি উল্লেখযোগ্য বাইনারি অঙ্ক, যা প্রায় 16 দশমিক সংখ্যার সাথে মিলে যায়।

প্রথম 15 টি উল্লেখযোগ্য দশমিক অঙ্ক প্রদর্শন করা সর্বদা "নিরাপদ" is এই অর্থে যে 15 টি সংখ্যার সাথে প্রদত্ত যে কোনও দশমিক "উপস্থাপিত" সংখ্যাটি 15 তম দশমিক চিত্রকে এক দ্বারা পরিবর্তন করে প্রাপ্ত সংখ্যাগুলি থেকে নিরাপদে আলাদা করা যায়। উদাহরণস্বরূপ, 15-সংখ্যার নম্বর:

22222.09481 99999
22222.09482 00000
22222.09482 00001

তিনটি স্বতন্ত্র ডাবল-স্পষ্টতা সংখ্যার মানচিত্র । এই তিনটি ক্ষেত্রে কেউই ডাবল-স্পষ্টতা উপস্থাপনায় "প্রতিবেশী" হবেন না, এই বিশেষ ক্ষেত্রে।

সুতরাং, ব্যবহারকারী প্রদর্শনে প্রথম দুটি বিভ্রান্ত করা, এটি এক্সেলের একটি বাগ g

প্রকৃতপক্ষে, এই ডোমেনে (16384 এবং 32768 এর মধ্যে) নিখুঁত নির্ভুলতা 2 -38 , এবং নিম্নলিখিত সংখ্যাগুলি প্রতিনিধিত্বযোগ্য:

...
22222.09481 99998 96571 9714760780334472656250000
22222.09481 99999 00209 9502831697463989257812500 <-- the one closest to what Excel showed to the user
22222.09481 99999 03847 9290902614593505859375000
22222.09481 99999 07485 9078973531723022460937500
22222.09481 99999 11123 8867044448852539062500000
22222.09481 99999 14761 8655115365982055664062500
22222.09481 99999 18399 8443186283111572265625000
22222.09481 99999 22037 8231257200241088867187500
22222.09481 99999 25675 8019328117370605468750000
22222.09481 99999 29313 7807399034500122070312500
22222.09481 99999 32951 7595469951629638671875000
22222.09481 99999 36589 7383540868759155273437500
22222.09481 99999 40227 7171611785888671875000000
22222.09481 99999 43865 6959682703018188476562500
22222.09481 99999 47503 6747753620147705078125000
22222.09481 99999 51141 6535824537277221679687500
22222.09481 99999 54779 6323895454406738281250000
22222.09481 99999 58417 6111966371536254882812500
22222.09481 99999 62055 5900037288665771484375000
22222.09481 99999 65693 5688108205795288085937500
22222.09481 99999 69331 5476179122924804687500000
22222.09481 99999 72969 5264250040054321289062500
22222.09481 99999 76607 5052320957183837890625000
22222.09481 99999 80245 4840391874313354492187500
22222.09481 99999 83883 4628462791442871093750000
22222.09481 99999 87521 4416533708572387695312500
22222.09481 99999 91159 4204604625701904296875000
22222.09481 99999 94797 3992675542831420898437500
22222.09481 99999 98435 3780746459960937500000000 <-- the one closest to what the user types
22222.09482 00000 02073 3568817377090454101562500
22222.09482 00000 05711 3356888294219970703125000
22222.09482 00000 09349 3144959211349487304687500
22222.09482 00000 12987 2933030128479003906250000
22222.09482 00000 16625 2721101045608520507812500
22222.09482 00000 20263 2509171962738037109375000
22222.09482 00000 23901 2297242879867553710937500
22222.09482 00000 27539 2085313796997070312500000
22222.09482 00000 31177 1873384714126586914062500
22222.09482 00000 34815 1661455631256103515625000
22222.09482 00000 38453 1449526548385620117187500
22222.09482 00000 42091 1237597465515136718750000
22222.09482 00000 45729 1025668382644653320312500
22222.09482 00000 49367 0813739299774169921875000
22222.09482 00000 53005 0601810216903686523437500
22222.09482 00000 56643 0389881134033203125000000
22222.09482 00000 60281 0177952051162719726562500
22222.09482 00000 63918 9966022968292236328125000
22222.09482 00000 67556 9754093885421752929687500
22222.09482 00000 71194 9542164802551269531250000
22222.09482 00000 74832 9330235719680786132812500
22222.09482 00000 78470 9118306636810302734375000
22222.09482 00000 82108 8906377553939819335937500
22222.09482 00000 85746 8694448471069335937500000
22222.09482 00000 89384 8482519388198852539062500
22222.09482 00000 93022 8270590305328369140625000
22222.09482 00000 96660 8058661222457885742187500
22222.09482 00001 00298 7846732139587402343750000
...

আরও বিস্তারিত জানার জন্য, 22222.09482একটি ঘরে টাইপ করার চেষ্টা করুন , এবং 22222.0948199999অন্য একটি ঘরে (পাঁচটি ট্রেইলিং নাইন) টাইপ করুন । এক্সেলের উপরের তীর দ্বারা নির্দেশিত দুটি আইইইই প্রতিনিধি বাছাই করা উচিত। এবং আমি এটি করি বলে মনে হয়, কারণ আপনি এই দুটি কোষের পার্থক্য পেতে গণনা করতে পারেন 9.82254E-11। তবে উভয়কে একইভাবে দেখানো হয়েছে।

যদি এক্সেল প্রথম 17 টি সংখ্যাদেখায়, তবে আইইইই সংখ্যাটি দশমিক সংখ্যার "নীচে" ঠিক কী তা খুঁজে বের করতে সহায়ক হবে। এই ক্ষেত্রে:

22222.0948199999 --> 22222.09481 99999 00
22222.09482      --> 22222.09481 99999 98

তবে একটি ভুল উপায়ে গোল করা 15 টি সংখ্যা দেখানো বিভ্রান্তিকর এবং অপ্রয়োজনীয়।


কেউ দাবি করার আগে এটি উদ্দেশ্যমূলক, তাহলে কেন 8.7একই আচরণ দেখায় না? নিকটতম ডাবল-স্পষ্টতা নম্বরটি 8.7হ'ল:

8.69999999999999 93

সুতরাং এটি দেখাতে হবে যেন এটি 8.69999999999999উদ্দেশ্যমূলক। তবে তা হয় না।


9
আপনি ঠিক বলেছেন, এটি একটি বাগ। বাইনারি ফ্লোটিং পয়েন্ট সংখ্যাটি রূপান্তর করার জন্য অ্যালগরিদমগুলি উল্লেখযোগ্য সংখ্যার সর্বাধিক সংখ্যক সংখ্যা প্রদর্শন করে তবে তা জ্ঞাত। দেখে মনে হচ্ছে কেউ কোনও গুরুত্বপূর্ণ বিবরণ মিস করেছে।
মার্ক রান্সম

2
@ রাস্লান আমি স্ট্যাক ওভারফ্লো এবং অন্যান্য এসই সাইটে ভাসমান-পয়েন্ট পাটিগণিতের উপর প্রচুর থ্রেড দেখেছি এবং প্রায়শই লোকেরা প্রকৃত সংখ্যাগুলির সাথে সম্পর্কিত না হয়েই (বাইনারি) ভাসমান পয়েন্ট সম্পর্কে সমস্ত ধরণের সাধারণ সত্য এবং ধারণা দিয়ে উত্তর দেয় এবং আচরণটি আইইইই অনুগত কিনা তা যাচাই করা হচ্ছে। আমি মনে করি আমি "কেন 2.1 + 2.2ফিরে আসে 4.80000001?" প্রশ্নটি পোস্ট করতে পারি ? এবং অনেক উত্তর পেয়ে বলুন যে আমি যখন ভাসমান পয়েন্ট ব্যবহার করি তখন অবশ্যই আমার এটি প্রত্যাশা করা উচিত।
জেপ্প স্টিগ নীলসন

1
@ বেনশেফার্ড: লিব্রেফিসের স্ক্রিনশটটি এক্সেল স্ক্রিনশটটি কী দেখায় তা দেখায় না
টমাস ওয়েলার

1
@ জেপ্পস্টিগনিয়েলস: ২.১ + ২.২ = ৪.৮? এটি মাত্র 0.5 বন্ধ। এটা স্বাভাবিক.
থমাস ওয়েলার 11

@ মার্কারান্সম: সুতরাং, এক্সেল সত্যিই এটি প্রয়োগ করে? এক্সেল সি ++ বা এমন কিছুতে প্রয়োগ করা হয়নি যা এর জন্য ভাসমান পয়েন্ট গণনা করে? তুমি কি বলছ? বা ইতিমধ্যে সি ++ এ বাগটি রয়েছে তাই এটি কয়েক মিলিয়ন অ্যাপ্লিকেশনকে প্রভাবিত করে?
থমাস ওয়েলার

22

এক্সেল আইইইই 754 বাইনারি 64-বিট ফ্লোটিং পয়েন্ট ফর্ম্যাটে নম্বর সঞ্চয় করে। মূলটি "স্টোরগুলি" - দশমিক থেকে বাইনারিতে পরিবর্তন ঘটে যখনই কোনও সংখ্যা সংরক্ষণ করা হয়, যখন এটি আসল গণনায় ব্যবহৃত হয় না কেবল।

এর উপর একটি দুর্দান্ত নিবন্ধটি বোঝা ফ্লোটিং পয়েন্ট যথার্থতা, যার নাম "এক্সেল কেন আমাকে আপাতদৃষ্টিতে ভুল উত্তর দেয়?"

এমন একটি স্প্রেডশিট প্রোগ্রাম তৈরি করা সম্ভব যা প্রচুর পরিমাণে উল্লেখযোগ্য অঙ্ক সহ সত্যই বড় সংখ্যা হ্যান্ডেল করতে পারে। তবে এটি ভয়ানকভাবে ব্যবহারিক নয়। এক্সেল পারে ব্যবহার করতে পরিকল্পিত হয়েছে আইইইই 754 decimal128 বিন্যাস 22222,09482 ধারণ করার জন্য পর্যাপ্ত চেয়ে বেশি -, যা 34 দশমিক সংখ্যা জন্য করতে পারবেন। তবে পরিবর্তে এটি এখন পর্যন্ত বেশি সাধারণ বাইনারি 64 ডাবল যথার্থ ফর্ম্যাট ব্যবহার করে, এতে 53 বিট নির্ভুলতা রয়েছে, যা কেবল 16 সংখ্যার নীচে। আপনি যদি মনে করতে পারেন যে এটি কেবলমাত্র 10 টি সংখ্যার সংখ্যার পক্ষে যথেষ্ট, দশমিক থেকে বাইনারি রূপান্তর কিছুটা জটিল করে তোলে - যেমন 2222209482 বাইনারি number৪ সংখ্যা হিসাবে 100% সঠিকভাবে সংরক্ষণ করা যেতে পারে তবে 22222.09482 তা পারেনা।

মনে রাখবেন যে সাধারণত স্প্রেডশিটগুলি আর্থিক ডেটার জন্য ব্যবহার করা হয়, যার জন্য যথাযথভাবে এতগুলি অঙ্কের প্রয়োজন হয় না বা বিভিন্ন পরিস্থিতিতে "মডেলিংয়ের জন্য" কী হয়, যেখানে একটি উচ্চ-উচ্চ স্তরের নির্ভুলতার প্রয়োজন হয় না। অবশ্যই অন্যান্য সরঞ্জাম রয়েছে (এবং সম্ভবত অন্যান্য স্প্রেডশিট প্রোগ্রাম, তবে আমি ইদানীং সন্ধান করিনি) যেটি হয় ডিফল্ট বা বিশেষ কনফিগারেশন সেটিংস দ্বারা একটি বৃহত সংখ্যাযুক্ত ফর্ম্যাট ব্যবহার করতে পারে তবে এক্সেল সেগুলির একটি নয়।

যারা লিবারঅফিস এটিকে আরও ভালভাবে পরিচালনা করেন তাদের জন্য চেহারাটি প্রতারণামূলক হতে পারে। আরও বিস্তারিত জানার জন্য এই পোস্টটি দেখুন । দেখে মনে হয় যে LibreOffice বড় সংখ্যাটিকে কিছুটা ভিন্নভাবে পরিচালনা করে তবে একই সমস্যার সাথে একই বেসিক 64-বিট ভাসমান পয়েন্ট উপস্থাপনা রয়েছে has


3
এই উত্তরটি আরও ভাল হবে যদি এটি পর্যবেক্ষণটিও ব্যাখ্যা করে যে দশমিকের সাথে কিছু সংখ্যাকে ঠিক যেমন প্রবেশ করানো হিসাবে দেখানো হয় - যেমন ওপির উদাহরণে 11111.09482।
অ্যান্ড্রু

11
শুধু মজার জন্য: 22222.09482যেমন সংরক্ষণ করা হয় 1.0101101100111000011000010001100001111110011111000000₂ * 2₁₀^(10000001101₂ - 1023₁₀)অন্য কথায় আইইইই 754, বা যেমন ঠিক 1.35632902954101553 * 2^14নয়, যা 22222.0948199999984353787904
YoYoYonnY

1
Binary64 (ওরফে ডবল স্পষ্টতা) হয় দশ দশমিক সংখ্যা সঙ্গে একটি সংখ্যা জন্য যথেষ্ট। অবশ্যই এটা ঠিক প্রতিনিধিত্ব করা যাবে না, কিন্তু অধিকাংশ সংখ্যা সহ 0.2এবং 0.1ঠিক প্রতিনিধিত্ব করা যাবে না (ভগ্নাংশ 1/5 (এক পঞ্চমাংশ) অসীম বাইনারি সম্প্রসারণ আবর্তক আছে)। তবে এক্সেল বিভ্রান্তিকর উপায়ে জিনিসগুলি দেখায়।
জেপ্পে স্টিগ নীলসন

2
"মনে রাখবেন যে সাধারণত স্প্রেডশিটগুলি আর্থিক তথ্যের জন্য ব্যবহৃত হয়, যার জন্য সাধারণত এতগুলি অঙ্কের যথার্থতা প্রয়োজন হয় না" - এটি সাধারণত খুব ভুল - আর্থিক তথ্যের জন্য এই অর্থে যথাযথ আচরণের প্রয়োজন হয় "আপনি যা টাইপ করেন তা হ'ল যা আপনি প্রত্যাশা করেন তা সেখানেই থাকবে" ", আপনি দশমিক / বাইনারি রূপান্তর ইত্যাদি সহ ঠিকই আছেন তবে এই বিশেষ যুক্তিটি অবৈধ! আর্থিক ডেটার জন্য আমরা সাধারণত কিছু ধরণের Moneyবা BigIntegerফর্ম্যাট ব্যবহার করি যা প্রায়শই দশমিক স্টোরেজ ফর্ম্যাট ব্যবহার করে।
হনজা জিদেক

4
এই উত্তরটি কী ঘটে তা বোঝাতে যথেষ্ট নয়। আমরা এক্সেলে একটি বাগ পর্যবেক্ষণ করছি, যেখানে নম্বরটি ভুলভাবে ফর্ম্যাট করা হয়েছে । 22222.09482 এবং 22222.0948199999 স্বতন্ত্র বাইনারি 64 সংখ্যা।
Ruslan

11

এটির গণনাগুলি করার সময়, এক্সেলটির ব্যবহৃত সংখ্যাগুলির জন্য একটি ভাল অভ্যন্তরীণ বাইনারি উপস্থাপনা খুঁজে নেওয়া দরকার। আপনার ক্ষেত্রে এটি একটি ভাসমান পয়েন্ট নম্বর ব্যবহার করে এবং সত্যিকার অর্থে এই ডেটা ফর্ম্যাটটিতে আপনার সংখ্যার জন্য একটি (খুব ভাল) সান্নিধ্য রয়েছে তবে সঠিক কোনও মিল নেই। সুতরাং আপনি যদি আউটপুট ফর্ম্যাটটি ব্যবহার করবেন তা স্পষ্টভাবে এক্সেলকে না বললে এটি একটি "সেরা চেষ্টা" করবে, ফলে আউটপুট যা অভ্যন্তরীণভাবে গণনা করা মানটির কাছাকাছি থাকে তবে আপনি যে পাঠ্য প্রবেশ করান ঠিক তা নয়।

কেবল এটি স্পষ্ট করার জন্য: বোঝা, আপনি যে পাঠ্য প্রবেশ করেছেন সেটি একটি সংখ্যাকে প্রতিনিধিত্ব করে এবং অঙ্কগুলির ক্রমটিকে একটি সংখ্যায় রূপান্তর করে ইতিমধ্যে উপরে থেকে "গণনা" এর সংজ্ঞা পূরণ করে।

সম্পাদনা

আমি এটি যথেষ্ট পরিষ্কার করে বলিনি, যে আমি a৪ বিটের ভাসমান-বিন্দু উপস্থাপনাটি ব্যবহার করার পছন্দটিকে একটি ভাল হিসাবে বিবেচনা করি: বিজ্ঞানীদের কাছে এক্সেল কোনও সরঞ্জাম হিসাবে বুদ্ধিমান নয়, যেখানে দশমিক দশকের পরে ১১ তম অঙ্কের গোলটে ত্রুটি তৈরি হয় একটি বড় প্রভাব, তবে হিসাবরক্ষকরা তাদের প্রক্রিয়াকরণের গতি কয়েক মিলিয়ন ফ্যাক্টর দ্বারা হ্রাস করতে চান না অনর্থক গণনার এমন কোনও উত্স যা তারা কখনও ব্যবহার না করে এমন সংখ্যায় প্রকাশ করতে পারে।

আপনি যদি স্প্রেডশিট প্রোগ্রামটি এর জন্য ডিজাইন করেছিলেন তার জন্য এবং স্পষ্টভাবে আউটপুট ফর্ম্যাটিং ব্যবহার করেন তবে নিশ্চিত হয়ে নিন যে সেই প্রভাবগুলি এটিকে কখনও দৃশ্যমান রাজ্যে পরিণত না করে, আপনি ভাল হয়ে যাবেন।


1
মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
ডেভিডপস্টিল

1
এই উত্তরটি কী ঘটে তা বোঝাতে যথেষ্ট নয়। আমরা এক্সেলে একটি বাগ পর্যবেক্ষণ করছি, যেখানে নম্বরটি ভুলভাবে ফর্ম্যাট করা হয়েছে। 22222.09482 এবং 22222.0948199999 স্বতন্ত্র বাইনারি 64 সংখ্যা।
Ruslan

2

আমি যখন 11111.09482 এবং 66666.09482, 77777.09482 .. 99999.09482 অবধি প্রবেশ করি তখন তারা সঠিকভাবে প্রদর্শন করে। আমি নিশ্চিত নই যে এটি রাউন্ডিংয়ের সাথে সম্পর্কিত? আমি কোনও রাউন্ডিং প্রোফাইল সেটআপ করি নি। আপনি দয়া করে সমস্যা সমাধানে আমাকে সহায়তা করতে পারেন?

কিছু নম্বর সঠিকভাবে উপস্থাপন করা যায় এবং কিছু নাও পারে।

আপনার গণনার জন্য প্রদর্শিত যথাযথতা যথাযথভাবে সেট করুন এবং বৃত্তাকার () ফাংশনটি ব্যবহার করুন ।

  • ব্যাখ্যা:

  • সমাধান:

    আপনি আপনার ডেটাতে একটি সংখ্যা ফর্ম্যাট প্রয়োগ করার আগে আপনি প্রদর্শিত বার্তা হিসাবে যথাযথতা সেট করে আপনার কাজের উপর প্রভাব ফেলতে ভাসমান পয়েন্ট গোলাকৃতি ত্রুটিগুলি প্রায়শই প্রতিরোধ করতে পারেন। এই বিকল্পটি কার্যপত্রকের প্রতিটি সংখ্যার মানকে কার্যপত্রকের উপরে প্রদর্শিত নির্ভুলতায় বাধ্য করে।

    1. ফাইল> বিকল্পগুলিতে ক্লিক করুন।
      এক্সেল 2007 এ: মাইক্রোসফ্ট অফিস বাটন অফিস বোতাম চিত্রটি ক্লিক করুন এবং তারপরে এক্সেল বিকল্পগুলি ক্লিক করুন।
      বাটন ইমেজ

    2. উন্নত ক্লিক করুন, এবং তারপরে এই কর্মপুস্তকের গণনা করার সময় প্রদর্শিত চেক বাক্স হিসাবে যথার্থতা সেট করুন নির্বাচন করুন, এবং তারপরে ওকে ক্লিক করুন।

    3. ঠিক আছে ক্লিক করুন।

    4. কার্যপত্রকটিতে, আপনি যে ঘরগুলি ফর্ম্যাট করতে চান সেটি নির্বাচন করুন।

    5. হোম ট্যাবে, সংখ্যার পাশে ডায়ালগ বক্স লঞ্চার বোতাম চিত্রটি ক্লিক করুন।
      লঞ্চার বোতামের চিত্র
      এক্সেল রিবন চিত্র

    6. বিভাগ বাক্সে, নম্বর ক্লিক করুন।

    7. দশমিক স্থানগুলি বাক্সে, আপনি যে দশমিক স্থান প্রদর্শন করতে চান তার সংখ্যা দিন।

    টিপ: ভাসমান পয়েন্ট গণিত স্টোরেজ ত্রুটির কোনও প্রভাব কমাতে, আপনি আপনার গণনার দ্বারা প্রয়োজনীয় দশমিক জায়গাগুলির সংখ্যার সাথে গোল করে রাউন্ড ফাংশনটিও ব্যবহার করতে পারেন।

  • একাউন্টেন্সি জার্নাল - " এক্সেলের গণনার ত্রুটিগুলি দ্বারা বুগড ":

    কিছু বিজোড় সংখ্যা পুনরাবৃত্তি বাইনারি দশমিক তৈরি করে এবং যখন 15 বারের পরে সেই পুনরাবৃত্তি সংখ্যাগুলি কেটে ফেলা হয় তখন বাইনারি সংখ্যাটি সঠিকভাবে উদ্দিষ্ট সংখ্যার মানটিতে রূপান্তর করে না। উদাহরণস্বরূপ, এক্সেলের সমস্ত সংস্করণে, 22.26 - 21.29 সূত্রটি 0.97 প্রদান করবে তবে পরিবর্তে 0.970000000000002 আয় করবে। এটি চেষ্টা করে দেখুন এবং আপনার কলামের প্রস্থ এবং দশমিক জায়গাগুলি বাড়িয়ে রাখুন যাতে আপনি গণনার সমস্যা দেখতে পান।

    এ জাতীয় ত্রুটিগুলি সাধারণত তাত্পর্যপূর্ণ বা অপ্রতিরোধ্য বলে বিবেচিত হয় কারণ এগুলি খুব কমই অর্থবহ গণনা ত্রুটির মধ্যে প্রকাশ পায়; তবুও, সম্ভাব্য ভাসমান দশমিক বিন্দু ত্রুটিগুলি দূর করতে আপনি নিতে পারেন এমন দুটি পদক্ষেপ:

    1. রাউন্ড ফাংশন। আপনার গণনা করা মানগুলিকে পছন্দসই দশমিক স্থানে গোল করতে এক্সেলের রাউন্ড ফাংশনটি ব্যবহার করুন, যার ফলে 15 তম-সংখ্যার অসঙ্গতির কোনও সম্ভাবনা দূর হয়। উদাহরণস্বরূপ, সূত্র = রাউন্ড (-21.29 + 22.26,2) সঠিকভাবে 0.97 উপার্জন করে।

    2. স্পষ্টতা। দৃশ্যমান অঙ্কগুলির উপর ভিত্তি করে সমস্ত সূত্রকে কাটা এবং গোলাকার গণনা করা মানগুলিকে বাধ্য করার জন্য আপনি এক্সেলের যথার্থ হিসাবে প্রদর্শিত বিকল্পটি চালু করতে পারেন।

    এক্সেল ২০১৩, ২০১০ এবং ২০০ in এ এই বিকল্পটি চালু করতে, ফাইল (বা অফিস অরব), বিকল্পগুলি (বা এক্সেল বিকল্পগুলি), উন্নত নির্বাচন করুন এবং এই কার্যপত্রকের বিভাগটি গণনা করার সময় প্রদর্শিত বাক্স হিসাবে সেট স্পষ্টতাটি পরীক্ষা করুন এবং তারপরে ওকে ক্লিক করুন।

    এক্সেল 2003, 2002 এবং 2000-এ, সরঞ্জাম মেনু থেকে বিকল্পগুলি নির্বাচন করুন এবং গণনা ট্যাবে ওয়ার্কবুক বিকল্পগুলির অধীনে প্রদর্শিত বাক্স হিসাবে যথার্থতা পরীক্ষা করুন এবং তারপরে ওকে ক্লিক করুন।


1
ব্যাখ্যাটি অপ্রাসঙ্গিক: প্রত্যাশিত এবং প্রাপ্ত সংখ্যার মধ্যে পার্থক্যটি 28 ইউএলপি - প্রাকৃতিক রাউন্ডঅফ ত্রুটির পক্ষে খুব বেশি। "সমাধান" কেবল একটি আসল বাগ লুকায়।
Ruslan

আপনি যদি মন্তব্যটির পরিবর্তে আপনার নিজের উত্তর হিসাবে আপনার উত্তরকে সমর্থন করে কয়েকটি লিঙ্ক সহ পোস্ট করতে পারতেন তবে দুর্দান্ত হবে। এইভাবে এটি ব্যবহারকারীর নজরে আসবে 954171 এবং লোকেরা এতে ভোট দিতে পারে। আপনি কি বাগ রিপোর্টের একটি লিঙ্ক সরবরাহ করতে পারেন?
রব

ইতিমধ্যে সমস্ত গাণিতিক বিশদ সহ একটি উত্তর আছে। এই সম্পর্কে কোনও বাগ রিপোর্টের ডুনো।
রুসলান

0

আমি নিশ্চিত যে আপনি জানেন, কম্পিউটারগুলি অভ্যন্তরীণভাবে কেবল জিরো এবং সেগুলি (ওরফে বিট) ব্যবহার করে কাজ করে এবং একটি মান উপস্থাপনের জন্য নির্দিষ্ট সংখ্যক বিট থাকে (সাধারণত আজকাল 64 বিট)। এর অর্থ হল যে বিভিন্ন মানের প্রতিনিধিত্ব করা যায় তার সংখ্যা 2 থেকে 64 তম পাওয়ার। এটি একটি বিশাল সংখ্যা, অবশ্যই, তবে সম্ভাব্য মানগুলির সংখ্যা সীমাবদ্ধ, সুতরাং সমস্ত সংখ্যার প্রতিনিধিত্ব করা যায় না। যখন এটি একটি সংখ্যার মুখোমুখি হয় যখন এটি হুবহু উপস্থাপন করতে পারে না, এটি স্বয়ংক্রিয়ভাবে এটি প্রতিনিধিত্ব করতে পারে এমন নিকটতম দ্বারা প্রতিস্থাপন হয় । আপনি যা দেখছেন তা সেটাই।


আপনি সংখ্যাটি ভিত্তি রূপান্তরকরণের কারণে, বা মূল্য অনুসারে মেমরির সীমিত পরিমাণের কারণে উল্লেখ করছেন? উভয় ক্ষেত্রেই, আপনার যুক্তিটি ভুল। প্রযুক্তিগতভাবে, সুনির্দিষ্ট নির্ভুলতা এবং স্বেচ্ছাসেবী দৈর্ঘ্যের সংখ্যা - অসীম স্মৃতি ধরে ধরে নেওয়া পুরোপুরি সম্ভব। উদাহরণস্বরূপ, জিএনইউ বিগনাম রয়েছে। তদ্ব্যতীত, ক্ষতির বিন্যাসে সংখ্যাগুলি এনকোড করার কোনও অন্তর্নিহিত প্রয়োজন নেই। সুতরাং উভয়ই ত্রুটিযুক্ত কম্পিউটার বিজ্ঞান নয়, বা বাইনারি সংখ্যাও নয়। এটি কেবলমাত্র এক্সেল বিকাশকারীই এমন একটি সংখ্যা এনকোডিং বেছে নিয়েছে যা ক্ষয়ক্ষিত আর্ট ব্যবহারকারী ইনপুট।
ফ্রেসনেল

-1

কম্পিউটারগুলি তাদের গণিত বাইনারি করে এবং প্রায় সর্বদা অ-পূর্ণসংখ্যার মানগুলির জন্য ভাসমান পয়েন্ট ব্যবহার করে। ভাসমান বিন্দুতে যথাযথভাবে উপস্থাপিত হতে পারে কেবলমাত্র ভগ্নাংশের মানগুলি 2 (1/2, 1/4, 1/8, 1/16, 1/32, ...) সমাপ্তির ভগ্নাংশ শক্তির সংমিশ্রণের যোগফল হতে হবে ডিজাইন-ইন নির্ভুলতা সীমাতে (সাধারণত 53 বিট)। দশমিকের মধ্যে এই মানগুলির সর্বদা একটি পরিপাটি বা সঠিক উপস্থাপনা থাকে না এবং বিপরীতভাবে, দশমিকের মধ্যে ঠিক যে সমস্ত ভগ্নাংশের মান আপনি সঠিকভাবে উপস্থাপন করতে পারেন তা বাইনারিতে সঠিক প্রতিনিধিত্ব করতে পারে না। উদাহরণস্বরূপ: 0.1 এটি 2 এর ভগ্নাংশের শক্তির যোগফল হিসাবে প্রতিনিধিত্ব করা যায় না যা চিরকালের জন্য যায় না।

আপনি যখন আপনার স্প্রেডশীটে দশমিক মান সন্নিবেশ করবেন তখন এটি রূপান্তরিত হবে এবং বাইনারিতে সংরক্ষণ করা হবে এবং আপনার বর্ণিত কেসগুলি বাইনারি হিসাবে উপস্থাপিত হতে পারে এমন নিকটতম সান্নিধ্যে পরিণত হবে। প্রদর্শিত হয়, এটি দশমিক ফিরে ফিরে রূপান্তরিত হয়, আবার একটি আনুমানিক প্রয়োজন, যা আপনি ঠিক একই উপস্থাপনায় ফিরে রূপান্তর করতে পারে না।

কেন 53 বিট (দিতে বা নিতে)? কারণ "ডাবল নির্ভুলতা" ভাসমান পয়েন্ট সংরক্ষণের আদর্শ মানটিতে b৪ টি বিট ব্যবহার করা হয়, যেখানে একটি ম্যান্টিসা রয়েছে (এটি হিস্ট্যানডও বলে অভিহিত হয়), একটি চিহ্ন সূচক এবং একটি উদ্দীপক। ঘটনাকারীকে সাধারণত 10 বিট বরাদ্দ করা হয়, ম্যান্টিসার জন্য চিহ্নটি 53 রাখে takes এটি স্টোরেজ জন্য। গণনাগুলি সাধারণত 80 বিট এবং বৃত্তাকার পিছনে ব্যবহার করে করা হয়।

এমন কিছু পরিস্থিতি রয়েছে যেখানে কম্পিউটারগুলি বেস 10 এ কাজ করবে, বিশেষত যখন আর্থিক মানগুলির সাথে কাজ করে যেখানে রাউন্ডিং আর্টফিটগুলি গ্রহণযোগ্য হয় না।


2
আমি কম্বলের সাথে সমস্ত কম্পিউটারের বিবৃতিতে একমত নই । অনেকগুলি কম্পিউটার ছিল, নিঃসন্দেহে এখন সংগ্রহশালার টুকরা ছাড়া সক্রিয় ব্যবহারে আর বেশিরভাগ আর কার্যকর থাকে না, যেগুলি স্টোরেজ এবং গণনার জন্য দশমিক সংখ্যার ফর্ম্যাট ব্যবহার করে। এছাড়াও বিসিডি রয়েছে - বাইনারি কোডেড ডেসিমাল - ইন্টেল সিপিইউতে সীমিত ব্যবহার সহ আরও কয়েকটি সাম্প্রতিক সিপিইউতে ব্যবহৃত হয়। এর মধ্যে যে কোনওটিই হাতের প্রশ্নের সাথে প্রাসঙ্গিক নয় - মাইক্রোসফ্ট এক্সেল দ্বারা নম্বর সংরক্ষণের জন্য ব্যবহৃত পদ্ধতি, যা সমস্ত বাইনারি। তবে "সমস্ত কম্পিউটার" সঠিক নয়।
মনাসেখ্যাটজ-রিইনস্টেট মনিকা

আমি "সমস্ত কম্পিউটার" থেকে "কম্পিউটার" এ পরিবর্তন দেখি - আমি "প্রায় সমস্ত কম্পিউটার" বা "সর্বাধিক আধুনিক কম্পিউটার" বা এর মতো কিছু নিয়ে যেতে পারি। আমি জানি - আমি পিক। তবে কম্পিউটারগুলিও রয়েছে :-)
মনসাহেকাটজ-রিইনস্টেট মনিকা

@ মানাসেখ্যাটজ সমস্ত ডিজিটাল কম্পিউটার মূলত বাইনারি হয়। দশমিক গাণিতিক সুবিধার্থে বিসিডি বাইনারি শীর্ষে কেবল একটি বেস -10 কাঠামো।
Zenilogix

সমস্ত ডিজিটাল কম্পিউটার মূলত বাইনারি হওয়ার পরে, প্রথমদিকে প্রাথমিকভাবে বেশ কয়েকটি ছিল যা দশমিক ভিত্তিক ছিল। তবে আমি একমত যে বিসিডি দশমিক গাণিতিক সুবিধার্থে বাইনারি শীর্ষে মূলত বেস -10 কাঠামো।
মনাসেখ্যাটজ-রিইনস্টেট মনিকা

এই উত্তরটি মনে হচ্ছে এটি কম্পিউটারের দোষ। তবে তা হয় না। আপনি কাগজে লিখতে যে কোনও সংখ্যককে প্রতিনিধিত্ব করতে পারেন (ভগ্নাংশ হিসাবে সংরক্ষণের সময় ঠিক 1/3 টি সহজ?) এটা সত্যিই সম্পর্কে কি উপস্থাপনা এক্সেল লেখক এর বেছে নেওয়া হয়েছে সংখ্যার প্রতিনিধিত্ব করতে।
ফ্রেসনেল

-1

উপরোক্ত অনেকে যেমন বলেছেন, এটি অভ্যন্তরীণ উপস্থাপনা ত্রুটি। এক্সেল ডাবল নির্ভুলতা, 64 বিট ভাসমান পয়েন্ট সংখ্যাগুলির জন্য পছন্দ করেছে made এটি আপনাকে 2 64 দেয় সম্ভাব্য মান। প্রকৃত সংখ্যা ডোমেনটিতে মানগুলির একটি অসীমতা রয়েছে, সুতরাং আপনি যখন এমন কোনও ব্যবহার করার চেষ্টা করবেন যা এক্সেল দ্বারা প্রতিনিধিত্ব করা যায় না, তখন এটি সবচেয়ে কাছেরটি উপস্থাপিত হতে পারে be

আমি মন্তব্যগুলি দেখেছি যা বলেছে যে অসীম স্মৃতি দেওয়া হয়েছে, কোনও আসল সংখ্যা প্রতিনিধিত্ব করা যেতে পারে। সত্য, তবে "অসীম স্মৃতি" বলে কোনও জিনিস নেই তাই এটি একটি মূল বিষয়। অন্যরা বলেছেন যে এক্সেল বৃহত্তর অভ্যন্তরীণ উপস্থাপনা ব্যবহার করতে পারে, উদাহরণস্বরূপ 128 বিট। সত্য, তবে, দেখা যাচ্ছে যে প্রসেসরের বাসের আকারের সাথে মেলে বিটের সংখ্যার সাথে প্রতিনিধিত্ব করা সংখ্যায় কম্পিউটারগুলি গাণিতিক ক্রিয়াকলাপগুলি আরও ভাল। সুতরাং 32 বিট সংখ্যায় গাণিতিক ক্রিয়াকলাপে একটি 32 বিট কম্পিউটার দ্রুততম হবে এবং 64 বিট সংখ্যায় গাণিতিক ক্রিয়ায় একটি 64 বিট কম্পিউটার দ্রুততম হবে। যদি এবং কখন একটি 128 বিট কম্পিউটার থাকবে, তখন আমরা এক্সেলটি 128 বিটের সংখ্যার উপস্থাপনে চলে যেতে আশা করতে পারি। এটি এখনও একটি বৃহত তবে সীমিত সংখ্যার সংখ্যার প্রতিনিধিত্ব করবে।

যদি আপনার উদ্বেগটি স্প্রেডশিটে নম্বরগুলি কীভাবে দেখায় সে সম্পর্কে, তবে একটি সেট যথার্থতা (দশমিকের সংখ্যা) ব্যবহার করা আপনাকে ধারাবাহিক ফলাফল দেবে। আপনি যদি উদ্বিগ্ন হন তবে আপনার টাইপ করা সংখ্যা এবং এক্সেল দ্বারা সঞ্চিত প্রকৃত সংখ্যার মধ্যে পার্থক্য সম্পর্কে যদি আপনি উদ্বিগ্ন হন তবে আপনার উদ্বিগ্ন হওয়া ঠিক। পার্থক্যটি আসল এবং ত্রুটিটি আপনার করা কোনও গণনা দ্বারা চালিত হবে। আমি আশঙ্কা করছি যে আপনি এই ত্রুটিটি আটকে আছেন। এটি এক্সেলের একটি সীমাবদ্ধতা, কেউ কেউ যেমন বলেছে ত্রুটি নয় g এটি শীঘ্রই যে কোনও সময় পরিবর্তিত হওয়ার সম্ভাবনা নেই, সুতরাং এটি যদি আপনার পক্ষে গ্রহণযোগ্য না হয় তবে আমি প্রস্তাব দিচ্ছি যে আপনি আরও একটি স্প্রেডশিট অ্যাপ্লিকেশন সন্ধান করুন যা উচ্চতর নির্ভুলতার সাথে সংখ্যাকে উপস্থাপন করতে পারে। তবে মনে রাখবেন যে আপনার এমন কোনও অ্যাপ্লিকেশন খুঁজে পাওয়া উচিত, সীমাবদ্ধতা এখনও রয়েছে still এটি কেবল ত্রুটির আকারের চেয়ে আলাদা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.