「現場で使える! SQL Server実践ガイド」を公開しました!

言語によってROUND関数(四捨五入の処理)の結果は違う ※入力値がマイナス かつ 少数点第1位が5の場合

概要

入力値がマイナス かつ 少数点第1位が5の場合、言語によってROUND関数(四捨五入の処理)の結果は違う。

以下のどちらかになる。
・0の方向へ丸まる
・0の方向へ丸まる

各言語のROUND関数(四捨五入の処理)の結果は、上記のどちらになるのかを確認する。

ここでは入力値として「-100.5」を使用する。

エクセルVBAの場合

0の方向へ丸まる。

JavaScriptの場合

0の方向へ丸まる。

<!DOCTYPE html>
<html lang="ja">
<head>
	<meta charset ="UTF-8">
	<title>サンプル</title>
</head>

<body>
	
	<script type="text/javascript">
		alert(Math.round(-100.5));
	</script>
	
</body>
</html>

C#の場合

0の方向へ丸まる。

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    MessageBox.Show(Math.Round(-100.5).ToString());
}

エクセル関数の場合

0の方向へ丸まる。

SQL Server(T-SQL)の場合

0の方向へ丸まる。

まとめ

・エクセルでも「VBA」と「関数」で違う
・Microsoft製品でも「C#」と「SQL Server(T-SQL)」で違う

エクセルVBA0の方向へ丸まる
JavaScript0の方向へ丸まる
C#0の方向へ丸まる
エクセル関数0の方向へ丸まる
SQL Server(T-SQL)0の方向へ丸まる

タイトルとURLをコピーしました