दिलचस्प पोस्ट
एसएसएल प्रमाणपत्र कैसे सत्यापित किए जाते हैं? सी में फ़ंक्शन से मैं कई मान कैसे वापस करूँ? बैच स्क्रिप्ट HTML साइट को प्राप्त करते हैं और सामग्री को पार्स करते हैं (डब्ल्यूजीएटी, कर्ल या अन्य बाहरी एप के बिना) बूलियन क्यों करता है। टॉस्ट्रिंग आउटपुट "ट्रू" और "सच" नहीं है क्लीटालूल / स्प्रैसकेस के साथ एक कस्टम डिफ उपकरण का उपयोग करने का कोई भी तरीका? कैसे पता कैसे एक संकेतक ढेर या स्टैक को इंगित करता है? मेरे एंड्रॉइड एप्लिकेशन से सीधे Google Play Store कैसे खोलें? .NET – आप एक सरणी में "कैप्स" सीमांकित स्ट्रिंग कैसे विभाजित कर सकते हैं? एक फ़ाइल नाम को विभाजित करना अंतराल स्क्रॉल रीसाइक्लर में आइटम को जोड़ना प्रगति के साथ नीचे तल स्टेडी_लॉगिक_वेक्टर को n बिट के दाएं या बाएं को स्थानांतरित करें जावा सामान्य सूची <<सूची <? संख्या बढ़ाता है >> गुणा 2 संख्या और उसके बाद राशि वेबकैम के अंशांकन की शुद्धता की पुष्टि कैसे करें? सी में फाइल डिस्क्रिप्टर से फ़ाइल नाम प्राप्त करना

यूनिक्स खोल स्क्रिप्ट में फ़्लोटिंग-पॉइंट अरिदमिक

एक लिपि में 1.503923 जैसे फ्लोटिंग पॉइंट नंबर के साथ अंकगणित कैसे करें? फ्लोटिंग प्वाइंट नंबर स्ट्रिंग के रूप में फ़ाइल से खींच दिए जाते हैं। फ़ाइल का प्रारूप निम्नानुसार है:

1.5493482,3.49384,33.284732,23.043852,2.2384... 3.384,3.282342,23.043852,2.23284,8.39283... . . . 

यहाँ कुछ सरलीकृत नमूना कोड है जो मुझे काम करने की ज़रूरत है सब कुछ अंकगणित तक ठीक काम करता है मैं फ़ाइल से एक रेखा खींचना है, फिर उस पंक्ति से कई मान खींचें मुझे लगता है कि यह सर्च प्रोसेसिंग समय में कट जाएगा क्योंकि ये फाइल बहुत बड़ी है

 # set vars, loops etc. while [ $line_no -gt 0 ] do line_string=`sed -n $line_no'p' $file_path` # Pull Line (str) from a file string1=${line_string:9:6} # Pull value from the Line string2=${line_string:16:6} string3=... . . . calc1= `expr $string2 - $string7` |bc -l # I tried these and various calc2= ` "$string3" * "$string2" ` |bc -l # other combinations calc3= `expr $string2 - $string1` calc4= "$string2 + $string8" |bc . . . generic_function_call # Use the variables in functions line_no=`expr $line_no - 1` # Counter-- done 

आउटपुट मैं प्राप्त कर रहा हूं:

 expr: non-numeric argument command not found 

Solutions Collecting From Web of "यूनिक्स खोल स्क्रिप्ट में फ़्लोटिंग-पॉइंट अरिदमिक"

इस बारे में क्या?

 calc=$(echo "$String2 + $String8"|bc) 

इससे bc $ String2 और $ String8 के मूल्यों को जोड़ देगा और परिणामस्वरूप चर calc में बचाया जाएगा।

मेरा मानना ​​है कि आपको उपयोग करना चाहिए: bc

उदाहरण के लिए:

 echo "scale = 10; 123.456789/345.345345" | bc 

(यह यूनिक्स का तरीका है: प्रत्येक उपकरण अच्छी तरह से करने में माहिर होता है कि वे क्या करना चाहते हैं, और वे सभी महान काम करने के लिए मिलकर काम करते हैं। दूसरे के साथ एक महान उपकरण का अनुकरण न करें, उन्हें एक साथ काम करें।

यदि आपके पास "बीसी" नहीं है तो आप 'अजार्क' का इस्तेमाल कर सकते हैं:

 calc=$(echo 2.3 4.6 | awk '{ printf "%f", $1 + $2 }') 

बीसी में स्केल परिशुद्धता है ताकि 4 के पैमाने के साथ हो अगर आप बीसी <<< 'पैमाने = 4; 22.0 / 7' टाइप करते हैं तो आपको एक उत्तर के रूप में 3.1428 मिलता है। यदि आप 8 के पैमाने का उपयोग करते हैं तो आपको 3.14285714 मिलेगा जो कि फ्लोटिंग पॉइंट के बाद 8 नंबर है। तो पैमाने एक सटीक कारक है