현재 .txt 파일에 가격을 입력하려고 합니다.
따라서 사용자가 다음을 입력할 때 다음을 원합니다.1.1
대신에 1.1
나는 그것이 되기를 원한다 1.10
. 앞으로 내가 만들고 싶은 테이블에 더 잘 어울릴 테니까. 또한 소수점 이하 3자리 이상이면 반올림하거나 내림하고 싶습니다. (수정해주신 john1024님께 감사드립니다.)
답변1
가격을 읽고 소수점 이하 2자리까지 표시하려면 다음을 시도해 보세요.
IFS= read -rp "Enter the price: " var
printf -v var %.2f "$var"
이 %.2f
형식은 printf
소수점 이하 두 자리 사용을 나타냅니다.
예:
$ IFS= read -rp "Enter the price: " var; printf -v var %.2f "$var"; echo "var=$var"
Enter the price: 1.2
var=1.20
$ IFS= read -rp "Enter the price: " var; printf -v var %.2f "$var"; echo "var=$var"
Enter the price: 1.123
var=1.12
노트:Bash의 printf
내장 함수는 소수점으로 숫자의 형식을 지정할 수 있지만 산술 표현식은 부동 소수점 숫자를 처리할 수 없습니다. 이를 위해서는 ksh93, zsh 또는 yash awk
와 같은 고급 셸이나 bc
.