web-dev-qa-db-ja.com

数値を小数点第2位に四捨五入

数値を小数点第2位に四捨五入する必要があります。今のところ、次は私が推測する最も近い整数に丸めます

puts [expr {round($total_rate)}]

以下のようなことをするとうまくいきません。別の方法はありますか?

puts [expr {round($total_rate,2)}]
9
Micheal
expr {double(round(100*$total_rate))/100}

% set total_rate 1.5678
1.5678
% expr {double(round(100*$total_rate))/100}
1.57
% set total_rate 1.4321
1.4321
% expr {double(round(100*$total_rate))/100}
1.43
12
glenn jackman

特定の小数点以下の桁数に丸める最も簡単な方法は、formatを使用することです。

puts [format "%.2f" $total_rate]

ユーザーに表示する代わりに、さらに計算するために丸められた値を使用している場合、[〜#〜] x [〜#〜]小数点以下の桁数に丸めて印刷するほとんどの値はそうではないことに注意してください。バイナリ演算で正確に表現されます(他の多数のプログラミング言語と同様に、Tclは内部で使用します)。人々に価値を示しているポイントまで、特定の数のDPへの丸めを予約するのが最善です。

14
Donal Fellows
puts [format "%.2f" $total_rate]

Formatを使用すると、出力で結果を確認できますが、プログラムで同じ値を使用する方法、つまり、出力で1.448を1.45と表示できますが、プログラムで1.45を使用できます。

2