ऐसा लगता है कि bc फ्लोट संचालन का समर्थन नहीं करता है, जब मैं echo 1/8 | bc
इसे शून्य करता हूं।
मैंने जाँच की bc (1)
, लेकिन यह भी उल्लेख नहीं करता है float
, तो मुझे आश्चर्य है कि अगर यह समर्थित है?
ऐसा लगता है कि bc फ्लोट संचालन का समर्थन नहीं करता है, जब मैं echo 1/8 | bc
इसे शून्य करता हूं।
मैंने जाँच की bc (1)
, लेकिन यह भी उल्लेख नहीं करता है float
, तो मुझे आश्चर्य है कि अगर यह समर्थित है?
जवाबों:
bc
फ्लोटिंग पॉइंट नहीं करता है लेकिन यह निश्चित सटीक दशमलव संख्या करता है। -l
झंडा Hauke लोड उदाहरण के लिए एक गणित पुस्तकालय का उल्लेख है। ट्रिगर कार्य लेकिन यह भी मतलब है
[...] डिफ़ॉल्ट पैमाना २० है
scale
मैन पेज में उल्लिखित "विशेष चर" की एक संख्या है। आप इसे सेट कर सकते हैं:
scale=4
जो भी आप चाहते हैं (चाहे -l
इस्तेमाल किया गया था या नहीं)। यह दशमलव में प्रयुक्त महत्वपूर्ण अंकों की संख्या को संदर्भित करता है । दूसरे शब्दों में, दशमलव स्केल (== निश्चित परिशुद्धता) के बाद बाद के समाधानों को अंकों की उस संख्या तक गोल किया जाएगा।
डिफ़ॉल्ट स्केल sans -l
0 है, जिसका अर्थ है पूरी संख्याओं तक।
आदमी पृष्ठ कहता है:
अगर b -l विकल्प के साथ bc लगाया जाता है, तो एक गणित पुस्तकालय प्रीलोडेड होता है [...]
उस की समझ में सुधार किया जा सकता है, वास्तव में ...
1) बीसी में संख्याओं का एक पैमाना होता है। किसी संख्या के पैमाने को स्केल फैक्टर के साथ भ्रमित नहीं किया जाना चाहिए। समान विश्व 'स्केल' का उपयोग संख्या के पैमाने को क्वेरी करने के लिए या स्केल फैक्टर को सेट करने के लिए एक पैरामीटर के रूप में किया जाता है।
echo "scale=scale(1.1);11/10" | bc will return 1.1
2) स्केल फैक्टर यह निर्धारित करता है कि ऑपरेशन करते समय दशमलव बिंदु के दाईं ओर कितने अंक रखे जाते हैं। यदि s वर्तमान पैमाने का कारक है, तो सा पहले ऑपरेंड a का पैमाना है, sb दूसरे ऑपरेंड b का पैमाना है, परिणाम निम्नानुसार काट दिए जाते हैं:
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) मूल bc में dc का पूर्वप्रक्रमक था। अब, कई प्रणालियों पर, बीसी एक स्टैंडअलोन प्रोग्राम है।
echo "scale=4; 1/8" | bc