zoukankan      html  css  js  c++  java
  • DevExpress DisplayFormat格式化操作

     1     public class MyExamFormat : IFormatProvider, ICustomFormatter
     2         {
     3             public string NumberToChinese(int num)
     4             {
     5                 string numStr = "0123456789";
     6                 string chineseStr = "零一二三四五六七八九";
     7                 if (num >= 0 && num <= 9) { return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString(); }
     8                 else if (num >= 10 && num <= 19) { if (num == 10) { return ""; } return "" + chineseStr[numStr.IndexOf(num.ToString()[1])].ToString(); }
     9                 else if (num >= 20 && num <= 99)
    10                 {
    11                     if (num % 10 == 0) { return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + ""; }
    12                     else return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + "" + chineseStr[numStr.IndexOf(num.ToString()[1])].ToString();
    13                 }
    14                 else if (num >= 100 && num <= 999)
    15                 {
    16                     if (num % 100 == 0) { return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + ""; }
    17                     else return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + "" +
    18                       ((int.Parse(num.ToString().Substring(1).ToString()).ToString().Length != (num.ToString().Length - 1)) ?
    19                          "" + NumberToChinese(int.Parse(num.ToString().Substring(1)))
    20                         : NumberToChinese(int.Parse(num.ToString().Substring(1))));
    21                 }
    22                 else if (num >= 1000 && num <= 9999)
    23                 {
    24                     if (num % 1000 == 0) { return chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + ""; }
    25                     else return
    26                          chineseStr[numStr.IndexOf(num.ToString()[0])].ToString() + "" +
    27                       ((int.Parse(num.ToString().Substring(1).ToString()).ToString().Length != (num.ToString().Length - 1)) ?
    28                          "" + NumberToChinese(int.Parse(num.ToString().Substring(1)))
    29                         : NumberToChinese(int.Parse(num.ToString().Substring(1))));
    30                 }
    31                 return num.ToString();
    32             }
    33 
    34             public object GetFormat(Type formatType)
    35             {
    36                 if (formatType == typeof(ICustomFormatter))
    37                 {
    38                     return this;
    39                 }
    40                 else return null;
    41             }
    42 
    43             public string Format(string format, object arg, IFormatProvider formatProvider)
    44             {
    45                 return "" + NumberToChinese(int.Parse(arg + "")) + "";
    46             }
    47         }
  • 相关阅读:
    (QR14)带权的DAG节点排序
    数字组合
    最长连续不重复子序列
    树状数组
    归并排序
    差分
    前缀和
    64位整数乘法
    MySQL8 常用指令
    离线及实时实操架构
  • 原文地址:https://www.cnblogs.com/flay/p/13272177.html
Copyright © 2011-2022 走看看