제1장: The Missing Code Library -- 9. 임 의 정밀도 부동 소수점 계산기
echo $((1/2))
그래서 계산 결과 가 더 높 은 정밀도 가 필요 할 때 이것 은 도전 을 받 아 들 였 다 는 것 을 의미한다.명령 행 아래 에 사용 하기 좋 은 계산 프로그램 이 몇 개 없다.예 를 들 어 bc 를 제외 하고 유 닉 스 사용자 가 배 우 는 이상 한 프로그램 이 별로 없다.bc 프로그램 은 자신 을 임의의 정밀도 의 계산기 로 생각 합 니 다. 애매 한 오류 정 보 를 사용 하여 유 닉 스 의 시작 으로 거 슬러 올 라 가 고 힌트 가 전혀 없습니다. 그리고 이 를 사용 하면 무엇 을 하고 있 는 지 잘 알 고 있다 고 가정 합 니 다.하지만 이 모든 것 은 상관 없어, 우 리 는 해결 할 수 있어.
코드:
#!/bin/sh
# scriptbc.sh -- 'bc'
if [ $1 = "-p" ]; then
precision=$2
shift 2
else
precision=2 # 2
fi
bc -q << EOF
scale=$precision
$*
quit
EOF
exit 0
스 크 립 트 작업 방법: 이 스 크 립 트 는 here document 방법 을 사 용 했 습 니 다. 이 방법 은 매우 유용 합 니 다.태그 기호 << 스 크 립 트 에 추가 입력 을 포함 할 수 있 습 니 다. 이 후속 입력 은 입력 흐름 에서 직접 얻 은 것 과 같 습 니 다. 이 예 에서 간단 한 메커니즘 으로 bc 프로그램 으로 명령 을 처리 할 수 있 습 니 다.이것 역시 우리 가 처음으로 논술 한 것 이다. 하나의 스 크 립 트 에서 명령 의 매개 변 수 를 어떻게 이용 하여 명령 의 유연성 을 강화 하 는 지.스 크 립 트 를 호출 할 때 - p 옵션 을 사용 하면 원 하 는 정 도 를 제공 할 수 있 습 니 다.제시 되 지 않 으 면 프로그램 은 기본적으로 scale = 2 를 사용 합 니 다.
bc 를 사용 할 때 길이 (length) 와 정밀도 (scale) 의 차 이 를 이해 하 는 것 이 특히 중요 합 니 다.bc 에 있어 length 는 숫자 중의 총 갯 수 이 고 scale 은 소수점 뒤의 숫자 갯 수 입 니 다.따라서 10.25 의 length 는 4 이 고 scale 은 2 이 며 3.14159 의 length 는 6 이 고 scale 은 5 이다.
기본 적 인 상황 에서 bc 의 length 는 변수 이지 만 scale 은 0 이기 때문에 어떠한 설정 도 추가 하지 않 으 면 bc 의 작업 방식 은 $() 와 똑 같 습 니 다.다행히도 bc 에 scale 을 설정 하면 숨겨 진 힘 이 많다 는 것 을 알 게 될 것 입 니 다. 예 를 들 어:
bc # bc
bc 1.06 # bc
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. #
This is free software with ABSOLUTELY NO WARRANTY. #
For details type `warranty'. #
scale=10 #
(2002-1962)*365 #
#
/7 #
.7142857142 #
quit # bc
명령 행 에서 bc 에 접근 할 수 있 도록 패키지 스 크 립 트 는 Copyright 내용 의 출력 을 금지 해 야 합 니 다.이들 의 입력 이 터미널 (표준 입력) 이 아니 더 라 도 대부분의 bc 버 전 은 머리 Copyright 의 출력 을 금지 해 야 한 다 는 것 을 알 고 있다.패 키 징 기 는 scale 을 명확 한 값 으로 설정 하여 bc 프로그램 에 표현 식 을 전달 한 다음 quit 명령 으로 종료 합 니 다.
스 크 립 트 실행: 이 스 크 립 트 를 실행 하려 면 스 크 립 트 프로그램 에 수학 표현 식 을 매개 변수 로 하면 됩 니 다.
실행 결과:
scriptbc.sh 14600/7
2085.71
scriptbc.sh -p 10 14600/7
2085.7142857142
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.