Math.Round四舍六入五成双C#

2004 ワード

環境VS 2005、VS 2003はテストされていません.
Math.Round (Decimal, Int32)
指定した精度まで小数点以下を切り捨てます.由.NET Compact Frameworkサポート.
Math.Round (Double, Int32) 
二重精度浮動小数点値を指定した精度に丸めます.由.NET Compact Frameworkサポート.
msdnは詳細な説明がなく、例を与えた.
Math.Round(3.44, 1); //Returns 3.4.
Math.Round(3.45, 1); //Returns 3.4.
Math.Round(3.46, 1); //Returns 3.5.

彼の例によって得られたのは「五捨六入」で、私は数字を変えて得た結果を完全に変えた.Math.Round(3.445, 1);//Returns 3.4.Math.Round(3.455, 1);//Returns 3.5.Math.Round(3.465, 1);//Returns 3.5.Math.Round(3.450, 1);//Returns 3.4.(補0は無効)Math.Round(3.4452, 2);//Returns 3.45.Math.Round(3.4552, 2);//Returns 3.46.Math.Round(3.4652, 2);//Returns 3.47.
四捨六入五成双
四捨六入五成双は比較的正確で比較的科学的なカウント保持法であり、デジタル修約規則である. 
桁数の多い近似数については、有効桁数が決定された後、その後ろの余分な数字は切り捨てられ、有効な数値の最下位の1桁しか残っていない.この修約(切り捨て)規則は「四捨六入五成双」である.
 
すなわち、「4舎6入5湊」ここで「四」とは≦4時に捨て去ることを意味し、
「六」は≥6時に上がることを指し、
「五」は5の後ろの数字によって決められ、5の後に数がある場合、5を捨てて1に入ることを指す.
5以降が無数または0の場合は、次の2つの状況に分ける必要があります.
①5前は奇数で、5を捨てて1を入れる.
②5前は偶数で、5を捨てて入らない.  
 
具体的なルールは次のとおりです.
   1. 修約された数字が4以下の場合、この数字は切り捨てられる. 
 2. 修約された数字が6以上の場合、進位する. 
 3. 修約された数字が5に等しい場合、5の前の数字を見て、奇数であれば進位し、偶数であれば5を切り捨て、すなわち修約後の末尾の数字が偶数になる.5の後ろに「0」以外の数がある場合は、5の前が奇数でも偶数でもキャリーすべきである. 
 
たとえば、上記のルールを使用して、次の3桁の有効な数値を保持します.
 9.8249=9.82, 9.82671=9.83 
 9.8350=9.84, 9.8351 =9.84  
   9.8250=9.82, 9.82501=9.83  
統計学の観点から、「四捨六入五成双」は「四捨五入」よりも科学的であり、大量の演算時に、四捨五入のように五に会うのではなく、捨入後の結果誤差の平均値をゼロにし、結果が大数に偏り、誤差が蓄積され、システム誤差が発生し、「四捨六入五成双」は測定結果に捨入誤差の影響を最小限に抑える.  
 
例えば、1.15+1.25+1.35+1.45=5.2、
四捨五入で小数を1桁計算すると、
1.2+1.3+1.4+1.5=5.4  
「四捨六入五成双」で計算すると、
1.2+1.2+1.4+1.4=5.2で、丸めた結果は実際の結果をより反映します.