입력란을 소수점 이하 2자리로 설정(가격)

입력란을 소수점 이하 2자리로 설정(가격)

현재 .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.

관련 정보