Beispiel #1
0
        /// <summary>
        /// 小数点数以下x桁切り上げ
        /// </summary>
        /// <param name="number">数値</param>
        /// <param name="digitsAfterDecimalPoint">小数点数以下の桁数</param>
        /// <param name="ct">切り上げ処理の方向</param>
        /// <returns>小数点数以下x桁切り上げ編集後の文字列</returns>
        /// <remarks>
        /// @IT > .NET TIPS > 数値の切り捨て/切り上げを行うには?[C#、VB]
        /// http://www.atmarkit.co.jp/fdotnet/dotnettips/703mathfloorceiling/mathfloorceiling.html
        /// 小数点を切り捨て、切り上げ、四捨五入する .NET Tips C#, VB.NET
        /// http://dobon.net/vb/dotnet/programing/round.html
        /// </remarks>
        public static string Ceiling(object number, uint digitsAfterDecimalPoint, CeilingToward ct)
        {
            decimal dcm;

            // decimalにParseしてみる。
            if (decimal.TryParse(number.ToString(), out dcm))
            {
                // シフトさせる数を計算。
                decimal shift = 1;

                // 小数点数以下2桁切り上げで、100
                for (int i = 0; i < digitsAfterDecimalPoint; i++)
                {
                    // 10倍
                    shift *= 10;
                }

                // シフトさせる
                dcm *= shift;

                // 切り上げ
                if (ct == CeilingToward.RI)
                {
                    // 絶対値・一般
                    if (0 <= dcm)
                    {
                        // 0以上
                        dcm = Math.Ceiling(dcm);
                    }
                    else
                    {
                        // 0未満

                        // 数値の整数部分を返す。
#if NETSTD
                        dcm = Math.Truncate(dcm);
#else
                        dcm = Microsoft.VisualBasic.Conversion.Int(dcm);
#endif
                    }
                }
                else
                {
                    // 大小・算術
                    dcm = Math.Ceiling(dcm);
                }

                // シフトさせる
                dcm /= shift;

                // 戻す(0の追加
                return(FormatConverter.AddZerosAfterDecimal(dcm, digitsAfterDecimalPoint));
            }
            else
            {
                return("0");
            }
        }
Beispiel #2
0
        /// <summary>
        /// 小数点数以下x桁切り捨て
        /// </summary>
        /// <param name="number">数値</param>
        /// <param name="digitsAfterDecimalPoint">小数点数以下の桁数</param>
        /// <param name="ft">切り捨て処理の方向</param>
        /// <returns>小数点数以下x桁切り捨て編集後の文字列</returns>
        /// <remarks>
        /// @IT > .NET TIPS > 数値の切り捨て/切り上げを行うには?[C#、VB]
        /// http://www.atmarkit.co.jp/fdotnet/dotnettips/703mathfloorceiling/mathfloorceiling.html
        /// 小数点を切り捨て、切り上げ、四捨五入する .NET Tips C#, VB.NET
        /// http://dobon.net/vb/dotnet/programing/round.html
        /// </remarks>
        public static string Floor(object number, uint digitsAfterDecimalPoint, FloorToward ft)
        {
            decimal dcm;

            // decimalにParseしてみる。
            if (decimal.TryParse(number.ToString(), out dcm))
            {
                // シフトさせる数を計算。
                decimal shift = 1;

                // 小数点数以下2桁切り捨てで、100
                for (int i = 0; i < digitsAfterDecimalPoint; i++)
                {
                    // 10倍
                    shift *= 10;
                }

                // シフトさせる
                dcm *= shift;

                // 切り捨て
                if (ft == FloorToward.RZ)
                {
                    // 絶対値・一般
                    if (0 <= dcm)
                    {
                        // 0以上
                        dcm = Math.Floor(dcm);
                    }
                    else
                    {
                        // 0未満
                        dcm = Math.Truncate(dcm);
                        //dcm = Microsoft.VisualBasic.Conversion.Fix(dcm);
                    }
                }
                else
                {
                    // 大小・算術
                    dcm = Math.Floor(dcm);
                }

                // シフトさせる
                dcm /= shift;

                // 戻す(0の追加
                return(FormatConverter.AddZerosAfterDecimal(dcm, digitsAfterDecimalPoint));
            }
            else
            {
                return("0");
            }
        }
Beispiel #3
0
 /// <summary>4桁区切りの文字列に変換</summary>
 /// <param name="number">数値</param>
 /// <returns>
 /// 4桁区切りの数値文字列
 /// </returns>
 public static string AddFigure4(object number)
 {
     return(FormatConverter.AddFigureX(number, 4));
 }
Beispiel #4
0
 /// <summary>
 /// 小数点数以下x桁切り上げ(正の無限大への丸め:大小)
 /// </summary>
 /// <param name="number">数値</param>
 /// <param name="digitsAfterDecimalPoint">小数点数以下の桁数</param>
 /// <returns>小数点数以下x桁切り上げ編集後の文字列</returns>
 public static string Ceiling(object number, uint digitsAfterDecimalPoint)
 {
     // デフォルトは、正の無限大への丸め:大小とする(下位互換のため
     return(FormatConverter.Ceiling(number, digitsAfterDecimalPoint, CeilingToward.RP));
 }
Beispiel #5
0
 /// <summary>
 /// 小数点数以下x桁切り捨て(負の無限大への丸め:大小)
 /// </summary>
 /// <param name="number">数値</param>
 /// <param name="digitsAfterDecimalPoint">小数点数以下の桁数</param>
 /// <returns>小数点数以下x桁切り捨て編集後の文字列</returns>
 public static string Floor(object number, uint digitsAfterDecimalPoint)
 {
     // デフォルトは、負の無限大への丸め:大小・算術(下位互換のため
     return(FormatConverter.Floor(number, digitsAfterDecimalPoint, FloorToward.RM));
 }