1

$valueと$precisionの2つの数値があります。これらの数値の「浮動小数点」表現を作成する必要があります(ただし、これはbashであるため、出力は実際には文字列になります)。

$precisionは、数値に必要な小数点の数を示します。

例:

  $value=123, $precision=2

これにより、出力「1.23」が得られます。

どうすればBashからこれをエレガントに行うことができますか?私は「bc」のマニュアルページを見ていますが、実際にはそこには何も見えていません。最も簡単な方法は、入力値を文字列として扱い、文字「。」を挿入することだと思います。どういうわけか正しい位置に。

4

2 に答える 2

4

bc

bc <<EOF
scale = $precision
$value / (10 ^ $precision)
EOF

sed

sed -e "s/[0-9]\{$precision\}$/.&/" <<< "$value"
于 2012-08-31T15:12:09.510 に答える
2

わかりました。Bash の文字列操作のヘルプを見つけました。後世のためにここに投稿します。

lastIndex=$((${#value}-1))
dotIndex=$((${#value}-$precision))
decvalue=${value:0:$dotIndex}.${value:$dotIndex:$lastIndex}
于 2012-08-31T15:18:11.227 に答える