C#TwitterFacebookはてブPocket四捨五入した結果が欲しいのに、なぜかうまく計算されずハマってしまった。調べてみるとMath.Round()は、四捨五入ではなく近似値を表示するようだ。いっても実際のところMath.Round()が原因というよりは、double型の誤差が原因だった。Round.Math(double)以下のコードは、double型の変数に0.1ずつ足して、Math.Round()の結果を表示している。0.1;}この場合、以下の様な結果になる。12「11.5」が「11」に、「11.6」が「12」となり、「五捨六入」になってしまっている。デバッグで変数の中身を追っていくと、以下のように誤差が生まれてしまう。メソッドで、中間値を最も近い偶数の整数に丸められない場合があります。(System)MSDNの注意書きにあるように、double型の精度が低下が、Math.Round()で四捨五入できない原因だ。誤差をなくすにはどうすればよいか?それは、decimal型を使えば良い。0.1M;}decimal型を使った場合の結果は、以下の通り。12ちゃんと思い通りに四捨五入されている。デバッグで変数の中身を追っても、誤差なく加算されている。11.111.211.311.411.511.611.711.811.9さいごにとくに金額を扱うプログラムの場合は、必ずdecimal型を使うようにしてください。1円の誤差が大問題になる可能性があります。(特に税金がらみで)あと忘れがちなのは、単純に数値「11.1」と書いてもdecimal型にはなりません。decimal型を使う場合は、「11.1M」と「M」を忘れず書くようにしてください。Serverでの開発を行った時にハマったのが、Nullと空文字("")の扱いの違いだった。結論から言うと、以下のようになっている。...【C#】いろんなパディング(空白埋めやゼロ埋め)固定長IFファイルの作成では必要不可欠な処理、パディング。文字長を一定にしたり、ブラの隙間に夢を詰めたりいろんな使い方がされる。このエントリでは以下の3種類の方法を紹介する。2)」とかいたらコンパイラさんに怒られてしまった。LEFT関数は特に問題ないが、可変長データ...Excelで「データを貼り付けできません。」というエラーが出た時の対処法Excelでなぜか図形が挿入できない。オブジェクトを貼り付けることができない。こんなしょうもないことで、10分を無駄にしてしまった。その対処法をまとめる。Google先生に聞いたところ、以下の対処法があったが、どれもよくわからなかった。