四捨五入って??

普通に生活している中で使う「四捨五入」って読んで字の如く

5を境に切り捨てるか上げるか。

今まで自分も漠然と思い込んでいたんだけど…あくまでプラス数値の場合。

 

マイナス数値を扱う上での「四捨五入」って??

どうやらプラスとは扱いが違うらしい。

 

ネットで調べていく内に、そもそも「四捨五入」の定義って何??

明確な定義って無いみたい。

 

だからプログラム言語によってマイナスの「四捨五入」の扱いが違う。

 

EXCELの関数やSQLServerのクエリではマイナスでもプラスと同様の値が返ってくる。

VBとかは試していないけど、多分マイクロソフト系は同様の処理を行っているのだろう。

 

PHPで試してみても…どうやらプラスと同様の結果が返ってくる。

 

問題はJavaScript。

どうしてもクライアント側で計算させる必要があるので試してみると

プラスの場合は他の言語と同様な値を返すのだけど

マイナスの場合は端数は「切り捨て」になるみたい。

 

正直、困った。

サーバー側ではPHPで処理するのでクライアント側のJavaScriptで普通に「四捨五入」すると値が違ってくる。

 

どうする??

JavaScriptから非同期でPHPに計算させ受け取るのは面倒。

 

とりあえず、JavaScript側で処理しよう。

対象値がマイナスだったら「-」を付加し絶対値に変換し「四捨五入」

その後にまた「-」を付加しマイナス値に変換する事でPHP側と同様の値が返ってくる。

 

しばらく、コレで様子を見てみよう。

 

しかし、30年近くプログラム組んでてマイナスの四捨五入のコトを深く考えたコトなかったなぁ冷や汗 (顔)