คำถามติดแท็ก floating-point

16
วิธีการคำนวณจำนวนเต็มและลอยในทุบตีหรือภาษา / กรอบอื่น ๆ ?
การใช้echo "20+5"ข้อความจะสร้างข้อความ " 20+5" อย่างแท้จริง ฉันสามารถใช้คำสั่งใดในการรับผลรวมตัวเลข25ในกรณีนี้ นอกจากนี้วิธีที่ง่ายที่สุดในการทำเพียงแค่ใช้ bash สำหรับจุดลอยคืออะไร ตัวอย่างเช่นecho $((3224/3807.0))พิมพ์0:( ฉันกำลังมองหาคำตอบโดยใช้เชลล์คำสั่งพื้นฐาน ('บรรทัดคำสั่ง') เองหรือผ่านการใช้ภาษาที่มีให้จากบรรทัดคำสั่ง


2
ตัวแยกทศนิยมปัจจุบันคืออะไร
บอกว่าฉันมีสคริปต์เชลล์ POSIX ที่ ต้องทำงานในระบบ / สภาพแวดล้อมที่แตกต่างกันซึ่งฉันไม่ได้ควบคุมและ จำเป็นต้องลบตัวแยกทศนิยมออกจากสตริงที่ปล่อยโดยโปรแกรมที่เคารพการตั้งค่าภาษา ฉันจะตรวจจับตัวแยกทศนิยมด้วยวิธีทั่วไปได้อย่างไร

3
วิธีการจัดรูปแบบเลขทศนิยมด้วยเลข 2 ตัวที่สำคัญในการทุบตี?
ฉันต้องการพิมพ์เลขทศนิยมด้วยเลขนัยสำคัญสองตัวใน bash (อาจใช้เครื่องมือทั่วไปเช่น awk, bc, dc, perl และอื่น ๆ ) ตัวอย่าง: ควรพิมพ์ 76543 เป็น 76000 0.0076543 ควรพิมพ์เป็น 0.0076 ในทั้งสองกรณีตัวเลขที่สำคัญคือ 7 และ 6 ฉันได้อ่านคำตอบสำหรับปัญหาที่คล้ายกันเช่น: วิธีการปัดเลขทศนิยมในเปลือก? Bash จำกัดความแม่นยำของตัวแปร floating point แต่คำตอบจะเน้นที่การ จำกัด จำนวนตำแหน่งทศนิยม (เช่นbcคำสั่งด้วยscale=2หรือprintfคำสั่งด้วย%.2f) แทนตัวเลขที่มีนัยสำคัญ มีวิธีที่ง่ายในการจัดรูปแบบตัวเลขด้วยตัวเลข 2 ตัวที่สำคัญหรือฉันต้องเขียนฟังก์ชั่นของตัวเองหรือไม่?
17 bash  awk  bc  floating-point  dc 

4
bash loop เพิ่มขึ้น 0.02
ฉันต้องการสร้างห่วงสำหรับทุบตีด้วย 0.02 เป็นส่วนเพิ่มที่ฉันพยายาม for ((i=4.00;i<5.42;i+=0.02)) do commands done แต่มันไม่ทำงาน

2
awk เลขคณิตความแม่นยำสูง
ฉันกำลังมองหาวิธีที่จะบอก awk ให้ทำเลขคณิตความแม่นยำสูงในการดำเนินการทดแทน สิ่งนี้เกี่ยวข้องกับการอ่านฟิลด์จากไฟล์และแทนที่ด้วยการเพิ่มค่า 1% อย่างไรก็ตามฉันสูญเสียความแม่นยำที่นั่น นี่คือการทำสำเนาของปัญหาที่ง่ายขึ้น: $ echo 0.4970436865354813 | awk '{gsub($1, $1*1.1)}; {print}' 0.546748 ที่นี่ฉันมี 16 หลักหลังจากความแม่นยำทศนิยม แต่ awk ให้เพียงหก เมื่อใช้ printf ฉันจะได้ผลลัพธ์เดียวกัน: $ echo 0.4970436865354813 | awk '{gsub($1, $1*1.1)}; {printf("%.16G\n", $1)}' 0.546748 ข้อเสนอแนะเกี่ยวกับวิธีการได้รับความแม่นยำที่ต้องการ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.