বিসি (ব্যাশ) এর সাথে দুটি সংখ্যার তুলনা করার সময় ভুল ফলাফল


1

আমি একটি ত্রুটির মুখোমুখি হয়েছি, সম্ভবত একটি বাগ ইন করেছি bc। ব্যাশের স্ক্রিপ্টে দুটি সংখ্যার তুলনা করার চেষ্টা করার সময় আমি এটির মুখোমুখি হয়েছিলাম। দেখা যাচ্ছে যে আমি যখন করি:

echo "1.1E-2<1.1E-1" | bc -l

এটি প্রত্যাশিত 1 (প্রত্যাশার মতো)

তবে আমি যখন এক্সপ্লের জন্য এটি করি:

echo "2.1E-2<1.1E-1" | bc -l

এটি 0 প্রদান করে, যখন এটি 1 ফেরত আসবে (কারণ 0.021 0.11 এর চেয়ে ছোট)।

আমি বিবি সংস্করণ 1.06.95 কুবুন্টু 14.04 সহ ব্যবহার করছি

কেউ কি একই রকম ফলাফল পেয়েছে? কেউ কি কাজের কথা ভাবতে পারে?

উত্তর:


3

bc সূচকীয় স্বরলিপি বুঝতে পারি না।

এটি সম্ভবত "ই" কে হেক্স ডিজিট হিসাবে ব্যাখ্যা করে, তবে দীর্ঘ সংখ্যায় এটি 9 (বাগ?) এ অনুবাদ করে এবং একইভাবে অন্যান্য হেক্স সংখ্যার জন্য:

bc -l <<< E-4    # 14 - 4
10

bc -l <<< 1E-1   # 19 - 1
18

bc -l <<< F.4E2
9.492

1

আপনার কাজ

    echo "2.1*10^-2<1.1*10^-1" | bc -l

যদি কেস আপনি অন্য কোনও ফাইলের আউটপুট রূপান্তর করতে চান তবে আপনি এর মতো কিছু করতে পারেন

    echo "2.1E-2<1.1E-1" | sed 's/E/*10^/g'  | bc -l 

আপনি যেখানে sedবিকল্পের Eসাথে যান সেখানে *10^তা গ্রহণযোগ্যbc

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