我想輸出具有精確位數的浮點數而不在前面填充,因為我想在前面加上$符號例如我讀數字:
1.2345
12.345
123.456
我想要輸出:
$1.23450
$12.3450
$123.456
我在 printf 中嘗試了許多不同的變體,但無法修復總位數。我也沒有找到這個特定問題的答案,
printf "$%.7f\n" 1.2345 12.345 123.456
我"$%.7f\n "$f\n "$%6.4f\n "$%.7g\n
是否需要為不同大小的數字(即 1、10、100)獲取不同的格式?
uj5u.com熱心網友回復:
如何在bash中浮動列印固定數字或數字
列印列印數字的前 7 個字符。
printf "$%.7s\n" "$(printf "%.6f" 1234.2345)"
我是否需要為不同大小的數字(即 1、10、100)獲取不同的格式?
是的,您應該為自定義格式要求實作自己的格式功能。對于您想要的內容,沒有這樣的 printf 格式說明符。
uj5u.com熱心網友回復:
這是在 Bash 中使用浮點格式的替代方法:
#!/usr/bin/env bash
float_numbers=(1.2345 12.345 123.456)
# Get the longest number's length
for float in "${float_numbers[@]}"; do
max_length=$((${#float} > max_length ? ${#float} : max_length))
done
for float in "${float_numbers[@]}"; do
# Generate needed padding
printf -v padding '%-*s' $((max_length - ${#float})) ''
# Print $float followed by its 0 padding
printf '$%s%s\n' "$float" "${padding// /0}"
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/434631.html
