দেখে মনে হচ্ছে বিসি ফ্লোট অপারেশনগুলিকে সমর্থন করে না, যখন আমি echo 1/8 | bc
এটি করি তবে আমার শূন্য হয়।
আমি চেক করেছি bc (1)
, তবে এটি উল্লেখও করে না float
, তাই অবাক হয়েছি এটি সমর্থন করে কিনা?
দেখে মনে হচ্ছে বিসি ফ্লোট অপারেশনগুলিকে সমর্থন করে না, যখন আমি echo 1/8 | bc
এটি করি তবে আমার শূন্য হয়।
আমি চেক করেছি bc (1)
, তবে এটি উল্লেখও করে না float
, তাই অবাক হয়েছি এটি সমর্থন করে কিনা?
উত্তর:
bc
ভাসমান বিন্দু করে না তবে এটি স্থির নির্ভুলতা দশমিক সংখ্যা করে। -l
পতাকা Hauke লোড যেমন একটি গণিত লাইব্রেরি উল্লেখ করা হয়। ট্রিগ ফাংশন তবে এর অর্থও রয়েছে
[...] ডিফল্ট স্কেল 20 হয়
scale
ম্যান পেজে উল্লিখিত "স্পেশাল ভেরিয়েবল" এর মধ্যে একটি। আপনি এটি সেট করতে পারেন:
scale=4
যে কোনও সময় আপনি চান ( -l
ব্যবহৃত হয়েছিল কিনা ) এটি একটি দশমিক ব্যবস্থায় ব্যবহৃত উল্লেখযোগ্য সংখ্যাগুলির সংখ্যা বোঝায় । অন্য কথায়, পরবর্তী সমাধানগুলি দশমিক স্কেল (== নির্দিষ্ট নির্ভুলতা) পরে অঙ্কের সেই সংখ্যায় গোল হয়ে যাবে।
ডিফল্ট স্কেল সান -l
0, অর্থ পুরো সংখ্যায় গোল হয়।
ম্যান পেজ বলেছেন:
বিসি যদি -l বিকল্পের সাথে আহ্বান করা হয় তবে একটি গণিতের লাইব্রেরি প্রিললোড করা হয় [...]
এর বোধগম্যতা উন্নত হতে পারে, সত্যই ...
1) বিসিতে নম্বরগুলির একটি স্কেল থাকে। একটি সংখ্যার স্কেল স্কেল ফ্যাক্টরের সাথে বিভ্রান্ত হওয়া উচিত নয়। একই বিশ্বের 'স্কেল' একটি সংখ্যার স্কেল জিজ্ঞাসা করতে একটি ফাংশন হিসাবে বা স্কেল ফ্যাক্টর সেট করতে একটি পরামিতি হিসাবে ব্যবহৃত হয়।
echo "scale=scale(1.1);11/10" | bc will return 1.1
2) স্কেল ফ্যাক্টর নির্ধারণ করে যে অপারেশনগুলি করার সময় দশমিক পয়েন্টের ডানদিকে কতগুলি সংখ্যা রাখা হয়। যদি s বর্তমান স্কেল ফ্যাক্টর হয় তবে sa হ'ল প্রথম অপারেণ্ডের স্কেল, এসবি হ'ল দ্বিতীয় অপারেন্ড বি এর স্কেল, ফলাফলগুলি নিম্নলিখিত হিসাবে ছাঁটা হয়:
scale of result
a+b max(sa,sb)
a-b max(sa,sb)
a*b min(sa+sb , max(s,sa,sb))
a/b s
a%b so that a = b*quotient + remainder; remainder has sign of a
a^b min(sa×|b|, max(s,sa)); b must be integer
sqrt(a) max(s,sa)
3) মূল বিসি ছিল ডিসি একটি প্রিপ্রোসেসর। এখন, অনেক সিস্টেমে, বিসি একটি স্বতন্ত্র প্রোগ্রাম।
echo "scale=4; 1/8" | bc