public void TestFormat()
        {
            var    formatter = NumericFormatter.GetInstance();
            var    numeric   = new PropertyDescrption("any", "any", "株");
            string formatted;

            // 整数
            formatted = formatter.Format("1", numeric);
            Assert.AreEqual("1", formatted);
            formatted = formatter.Format("10000", numeric);
            Assert.AreEqual("10,000", formatted);
            formatted = formatter.Format("-1000000", numeric);
            Assert.AreEqual("-1,000,000", formatted);
            formatted = formatter.Format("0", numeric);
            Assert.AreEqual("0", formatted);
            formatted = formatter.Format("", numeric);
            Assert.AreEqual("", formatted);

            // 小数
            // 四捨五入で小数点以下1桁に丸める
            formatted = formatter.Format("1.23456789", numeric);
            Assert.AreEqual("1.2", formatted);
            formatted = formatter.Format("12345.6789", numeric);
            Assert.AreEqual("12,345.7", formatted);
            formatted = formatter.Format("-999999.9", numeric);
            Assert.AreEqual("-999,999.9", formatted);
            formatted = formatter.Format("123.00000000", numeric);
            Assert.AreEqual("123", formatted);
            formatted = formatter.Format("0.0", numeric);
            Assert.AreEqual("0", formatted);
        }
Example #2
0
        /// <summary>
        /// 使用すべきフォーマッタを返します。
        /// </summary>
        /// <param name="description">項目定義</param>
        /// <returns>フォーマッタ</returns>
        public static IFormatter Create(PropertyDescrption description = null)
        {
            if (description == null)
            {
                return(InactionFormatter.GetInstance());
            }

            switch (description.Unit)
            {
            case "円":
            case "百万円":
                return(CurrencyFormatter.GetInstance());

            case "%":
                return(RatioFormatter.GetInstance());

            case "株":
            case "倍":
            case "日":
            case "ヶ月":
            case "人":
                return(NumericFormatter.GetInstance());

            case "年":
            default:
                return(InactionFormatter.GetInstance());
            }
        }