Làm thế nào để hiển thị số 0 trước dấu thập phân trong bc?


9
echo "scale=3;1/8" | bc

hiển thị .125trên màn hình. Làm thế nào để hiển thị 0.125nếu kết quả đầu ra ít hơn một?

Câu trả lời:


9

bckhông thể xuất số 0 trước dấu thập phân, bạn có thể sử dụng printf :

$ printf '%.3f\n' "$(echo "scale=3;1/8" | bc)"
0.125

Lệnh dễ đọc hơn của con người. ;-)
Kevin Dong

1

Bạn có thể ống vào awk

echo "scale=3;1/8" | bc | awk '{printf "%.3f\n", $0}'

hoặc bạn chỉ có thể sử dụng awk cho tất cả

awk '{printf "%.3f\n", 1/8}' <<< ""

Đầu ra

0.125

Tại sao chúng ta nên làm gì <<< ""?
Kevin Dong

@KevinDongNaiJia awk yêu cầu một tệp đầu vào để hoạt động, điều này tạo và trống here string. Vì vậy, về cơ bản giả vờ có một tập tin trống ở cuối, nếu không awk sẽ đọc từ stdin. Thông tin khác ở đây

@cuonglm để bạn có thể, đừng chỉnh sửa câu trả lời của tôi.

@cuonglm Petty downvote, hay đấy!

1
@JID: Không phải tất cả các shell được hỗ trợ ở đây, bạn cần chỉ định nó cho người xem khác. Sử dụng BEGINkhối ngăn bạn khỏi rắc rối đó và nó di động.
cuonglm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.