精华内容
下载资源
问答
  • 一输入比较长的二进制数就显示不是二进制数 是在boolean那里出的问题吗 不知道怎么修改才能正常运行 比如输入10011010010 能显示1234 import java.util.Scanner; public class Binary { // Returns decimal ...
  • 在.Net通过编译以后常量的值会插入到程序集的元数据中,所以常量的类型必须是.Net的基元类型Boolean,Char,Byte,SByte,Int16,Int32,UInt32,Int64,UInt64,Singe,Double,DecimalString。也就是说在一个...

    转载自:http://www.cnblogs.com/ziyouyong/archive/2009/12/21/1628591.html

     

    常量:常量就是指永远不会改变的符号,在.Net通过编译以后常量的值会插入到程序集的元数据中,所以常量的类型必须是.Net的基元类型Boolean,Char,Byte,SByte,Int16,Int32,UInt32,Int64,UInt64,Singe,Double,Decimal和String。也就是说在一个程序集A的类中定义一个常量,在另一个程序集B中使用这个常量,当两个程序集编译以后,C#编译器会将这个常量插入到使用这个常量的程序集B的元数据中,而这时使用常量的程序集A对定义常量的程序集B没有运行时的依赖关系了,也就是说在运行时可以删除定义常量的程序集A,同时也说明如果修改这个常量的值再去编译定义常量的程序集A不会改变使用常量的程序集B在运行时获取到的这个常量的值,常量在带来这种好处的同时显然对于程序集的版本控制是很不利的。如果一个程序集需要从另一个程序集中总是获得最新的数据,则不能使用常量,这时可以使用只读字段。此外,常量具有static的含义,只能通过类型访问,不能通过对象访问。

      只读字段:只读字段也是在初始化(这个初始化是在运行时初初始化的)以后在验证过程中不允许修改的字段,只读字段引用的可以是任何类型的对象。但要注意只读字段只有在对象初始化时可以给这个字段赋值,也就是字段在初始化时还具有可写属性,以后这个字段就只读了,字段的只读含义是这个变量的引用不可以改变了,但是具体引用的对象的状态时可以改变的。编译器和验证机制确保只读字段不会被任何其他方法写入,但是我们依然可以使用反射修改只读字段。只读字段属于对象实例的,需要通过对象访问,属于对象状态的一部分。

      静态字段:静态字段是与类型关联的成员(只能通过类型访问,不像Java还可以通过类的实例访问,如果没记错的话),静态字段的初始化是在类型被加载到CLR中时执行的。静态字段可以应用任何类型的对象。

      静态只读字段:静态只读字段与常量比较类似,但是静态只读字段不限于基元类型,可以是.Net中的任何类型,静态只读字段不像常量是在编译时插入到元数据中的,而静态只读字段是在运行时赋值和确定的,也就是对于程序的依赖是一种强依赖关系,具体的值是在运行时去程序集中取到的,而不像常量做一个拷贝插入元数据中。静态只读字段属于类型的,通过类型访问。

      通过反射修改私有字段,下面一个示例通过反射修改私有的一般字段,常量,只读字段,静态字段,静态只读字段并打印出结果。在这里可以可以看出反射是很强大的,既然可以修改私有的只读字段,但要注意实际上通过反射也无法修改常量,修改会报错,这与常量的存储方式有关。通过反射给人一种可以跳过验证规则的假象。示例代码:

     

     运行结果:

    从这个结果可以看出,通过反射可以修改私有的普通字段,可以修改只读字段,可以修改静态字段,修改这三个都没有问题,但是不可以修改常量字段。当通过反射修改静态只读字段时(有点类似常量)时,可以正常执行,但是通过类获取的静态只读字段并没有改变,说明实际并没有修改成功,我们实际修改的只是通过反射获取的静态只读字段,并没有实际映射回去。具体原因感兴趣的同学可以通过IL分析一下,鄙人不才,不会IL。

     

    展开全文
  • 金额大写

    2010-10-16 14:28:00
    虽然网上这个一搜一大把,今天看到一个帖子有人...public static string GetChineseNum(decimal value) { string chinese = "零壹贰叁肆伍陆柒捌玖"; string unit = "元十百千万十百千亿十百...

    虽然网上这个一搜一大把,今天看到一个帖子有人自己写了,分享出来,让大家帮找错。自己一时兴起,正好有空,就练练手写了一个,速度应该是比较快的。不废话了。贴代码

    public static string GetChineseNum(decimal value) { string chinese = "零壹贰叁肆伍陆柒捌玖"; string unit = "元十百千万十百千亿十百千兆十百千"; string unit2 = "角分"; StringBuilder builder = new StringBuilder(); int u = 1; int i = 0; //整数 while (value >= u) { int n = (int)value / u % 10; u *= 10; if (n == 0) { i++; continue; } builder.Insert(0, unit[i++]); builder.Insert(0, chinese[n]); } if (builder[builder.Length - 1] != '元') { builder.Append("元"); } //小数 if ((int)value != value) { int value2 = (int)((value - (int)value) * 100); int n = value2 / 10 % 10; builder.Append(chinese[n]); builder.Append(unit2[0]); n = value2 % 10; builder.Append(chinese[n]); builder.Append(unit2[1]); } else { builder.Append("整"); } return builder.ToString(); }

    如果折合成时间,我居然算是1分钟只写了2行,囧。

    -----------------------------------------------------

    根据评论1,考虑超过1万的情况,我也不确定是否这次就百分百对,原来的版本依然保留。贴新的如下。

    public static string GetChineseNum(decimal value) { string chinese = "零壹贰叁肆伍陆柒捌玖"; string unit = "元十百千万十百千亿十百千兆十百千"; string unit2 = "角分"; StringBuilder builder = new StringBuilder(); long u = 1; int i = 0; //整数 while (value >= u) { int n = (int)((long)value / u % 10); u *= 10; if (n == 0) { i++; continue; } if (i > 1 && i < 4) { builder.Insert(0, "元"); } else if (i > 4 && i < 8) { builder.Insert(0, "万"); } else if (i > 8) { builder.Insert(0, "亿"); } builder.Insert(0, unit[i++]); builder.Insert(0, chinese[n]); } //小数 if ((long)value != value) { long value2 = (long)((value - (long)value) * 100); int n = (int)(value2 / 10 % 10); builder.Append(chinese[n]); builder.Append(unit2[0]); n = (int)(value2 % 10); builder.Append(chinese[n]); builder.Append(unit2[1]); } else { builder.Append("整"); } return builder.ToString(); }

    展开全文
  • 由于比较简单 写个简单实现类 来展示 public static void main(String[] args) { // 备注下源码中的枚举 ,枚举在构建DecimalFormat 方法 // char PATTERN_ZERO_DIGIT = '0'; // char PATTERN_GROUPING_...

    DecimalFormat

    java 提供的数字类型转换类
    由于比较简单 写个简单实现类 来展示

    public static void main(String[] args) {
    
    		// 备注下源码中的枚举 ,枚举在构建DecimalFormat 方法
    //		 char PATTERN_ZERO_DIGIT = '0';
    //		 char PATTERN_GROUPING_SEPARATOR = ',';
    //		 char PATTERN_DECIMAL_SEPARATOR = '.';
    //		 char PATTERN_PER_MILLE = '\u2030';
    //		 char PATTERN_PERCENT = '%';
    //		 char PATTERN_DIGIT = '#';
    //		 char PATTERN_SEPARATOR = ';';
    //		 String PATTERN_EXPONENT = "E";
    //		 char PATTERN_MINUS = '-';
    
    		double pi = 3.14159;
    		// 提取一个整数
    		System.out.println(new DecimalFormat("0").format(pi));
    		// 提取一位整数 和俩位小数
    		System.out.println(new DecimalFormat("0.00").format(pi));
    		// 提取俩位整数和三位小数,整数不足补0
    		System.out.println(new DecimalFormat("00.000").format(pi));
    
    		// 取所有整数
    		System.out.println(new DecimalFormat("#").format(pi));
    		// 取整数百分比 取两位小数为主
    		System.out.println(new DecimalFormat("#.##%").format(pi));
    
    		long c = 299792458;
    		// 科学计数法 取4位小数
    		System.out.println(new DecimalFormat("#.####E0").format(c));
    		// 两位整数的科学计数法
    		System.out.println(new DecimalFormat("00.####E0").format(c));
    		// 每三位进行逗号分隔
    		System.out.println(new DecimalFormat(",###").format(c));
    		// 格式嵌入文本
    		System.out.println(new DecimalFormat("光速大小为每秒,###米").format(c));
    
    	}
    
    

    输出结果

    3
    3.14
    03.142
    3
    314.16%
    2.9979E8
    29.9792E7
    299,792,458
    光速大小为每秒299,792,458米
    
    

    请自行比对结果和转换语法,其实比较不常用,如果业务复杂可以先转换成String 在处理,虽然比较麻烦,但可以根据业务需求进行相对处理。

    DateFormat 和 simpleDateFormat

    做时间类型转换的时候比较容易用到SimpleDateFormat 对象来构造父类对象DateFormat;
    其DateFormat 方法提供一些基础的时间类型格式获取比如本机时间。
    但直接用simpleDateFormat 就可以进行 String和Date之间的相互转换。

    SimpleDateFormat dft = new SimpleDateFormat("yyy-MM-dd E a HH:mm:ss");
    Date nowtime = new Date();
    String time = dft.format(nowtime);
    // java 提供的方式来转换String 和Date 
    
    展开全文
  • 最近再写一个C#的项目,需输出汉字日期,网上翻了一圈发现写的都比较麻烦。 ...public static String ConvertToChineseLite(Decimal number) { //将数字转化为汉字 var s = number.ToString(...

    最近再写一个C#的项目,需输出汉字日期,网上翻了一圈发现写的都比较麻烦。

    所以结合网上将数字转换为汉字大写金额的正则,写了个日期转换函数。

    public static String ConvertToChineseLite(Decimal number)
            {
                //将数字转化为汉字
                var s = number.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#");
                var d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
                if (number > 100) d = Regex.Replace(d, "[^0-9]+", "");  //修饰年
                var r = Regex.Replace(d, ".", m => "空空空〇一二三四五六七八九空空空空空空空空空十百千万亿兆京垓秭穰"[m.Value[0] - '-'].ToString());
                if (Math.Floor(number / 10) == 1) r = r.Substring(1, r.Length - 1);  //修饰十位为1的情形
                return r;
            }
    
    public static String Convert2ChineseDate(DateTime dt)
            {
                string y = ConvertToChineseLite(dt.Year);
                string m = ConvertToChineseLite(dt.Month);
                string d = ConvertToChineseLite(dt.Day);
                return y + "年" + m + "月" + d + "日";
            }

     

    展开全文
  • google aviator:轻量级Java公式引擎

    千次阅读 2020-06-30 15:44:14
    文章目录常用的方法官方文档简介包依赖使用手册执行表达式使用变量exec 方法调用函数自定义函数编译表达式访问数组和集合三元操作符正则表达式匹配变量的语法糖nil 对象日期比较大数计算和精度字面量表示运算类型...
  • python 语法基础

    2021-04-10 14:42:35
    list与string之间的转换 可比较大小的浮点数: import decimal from decimal import Decimal def decimal_retain(number, ndigits=0): """ Round a number to a given precision in decimal digits
  • 最近因为项目需要,在写业务算法类库,里面对数据修约要求比较严格,为了保留位数正确,在计算过程中需要多次进行Decimalstring的转换,担心太多的转换操作会导致性能变差,于是就想到对代码做一下性能测试,网上
  • golang 判断2个浮点型数字是否相同

    千次阅读 2019-04-18 11:22:53
    判断2个浮点型数字是否相同的方法(假定整数部分+小数点后3位相同,则视为相同) ...func Decimal(value float32) string { value1 := fmt.Sprintf("%.6f", value) return value1 } 比较两个由float型数据转化...
  • int和medium int关联字段时会转换成string比较 否点数 金额采用*100来存储 decimal存在四舍五入 日期类型 datetime(3) 带有毫秒 字符类型 字符集 json 转载于:...
  • 问题是hive的数据类型转换,decimal无法直接转化为double,可以尝试转换成string,后面hive会自动隐式转换成对应类型。  Hive在需要的时候将会对numeric类型的数据进行隐式转换。比如我们对两个不同数据类型的数字...
  • 这篇文章记录一些关于C#上的知识点,这些知识点比较可能会被面试问到,在开发的时候也需要注意。 装箱和拆箱 装箱:值类型成引用类型 拆箱:引用类型成值类型 所谓值类型在c#中包括整数型(int)、浮点型(float...
  • 问题题目:[leetcode-461]思路由于题目限制了整数范围,所以肯定是4个字节。那么内存中表示就是4个字节。 所以,把十进制数字转换为二... int hammingDistance(int x, int y) { std::string left = decimal2binary(x);
  • c#之语言基础

    热门讨论 2015-01-11 21:19:51
    c#的数据类型包括基础类型,如int ,char等,也包括比较复杂的类型,如stringdecimal等。c#作为完全面向对象的语言,c#中的所有数据类型是一个真正的类,具有格式化,系列化,以及类型转换等方法。根据在内存中...
  • C#支持Common Type Systme(CTS),其数据类型包括基本类型,如int、char、float等,也包括一些比较复杂的类型,如stringdecimal等。作为完全面向对象的语言,C#中的所有数据类型是一个真正的类,具有格式化、系列化...
  • int double string char bool decimal 变量的使用规则:先声明再赋值最后使用 int number; number=10; number=20; Console.WriteLine(number); 2、Camel Pascal 3、运算符 赋值运算符:= 复合赋值运算符:+= -= *...
  • 使用@Table和@Column方式定义,需要的属性配置都定义在@Column中,相对比较繁琐,如下所示 @Table(name = "test") public class Test extends BaseModel { @Column(name = "id",type = MySqlTypeConstant.INT,...
  • C#语言规范4.0

    2013-10-01 11:54:15
    4.1.7 decimal 类型 82 4.1.8 bool 类型 82 4.1.9 枚举类型 82 4.1.10 可以为 null 的类型 83 4.2 引用类型 83 4.2.1 类类型 84 4.2.2 对象类型 84 4.2.3 dynamic 类型 84 4.2.4 string 类型 85 4.2.5 接口类型 85 ...
  • c#语言规范

    2013-02-28 15:50:05
    4.1.7 decimal 类型 82 4.1.8 bool 类型 82 4.1.9 枚举类型 82 4.1.10 可以为 null 的类型 82 4.2 引用类型 83 4.2.1 类类型 84 4.2.2 对象类型 84 4.2.3 dynamic 类型 84 4.2.4 string 类型 84 4.2.5 接口类型 85 ...
  • C#本质论(第3版)

    2012-07-17 18:07:03
    2.1.3 decimal类型 2.1.4 字面值 2.2 更多基本类型 2.2.1 布尔类型 2.2.2 字符类型 2.2.3 字符串 2.3 null和void 2.3.1 null 2.3.2 void 2.4 类型的分类 2.4.1 值类型 2.4.2 引用类型 2.5 可空修饰符 ...
  • 4.1.7 decimal 类型 82 4.1.8 bool 类型 82 4.1.9 枚举类型 82 4.1.10 可以为 null 的类型 83 4.2 引用类型 83 4.2.1 类类型 84 4.2.2 对象类型 84 4.2.3 dynamic 类型 84 4.2.4 string 类型 85 4.2.5 接口类型 85 ...
  • 4.1.7 decimal 类型 82 4.1.8 bool 类型 82 4.1.9 枚举类型 82 4.1.10 可以为 null 的类型 83 4.2 引用类型 83 4.2.1 类类型 84 4.2.2 对象类型 84 4.2.3 dynamic 类型 84 4.2.4 string 类型 85 4.2.5 接口类型 85 ...
  • 4.1.7 decimal 类型 82 4.1.8 bool 类型 82 4.1.9 枚举类型 82 4.1.10 可以为 null 的类型 83 4.2 引用类型 83 4.2.1 类类型 84 4.2.2 对象类型 84 4.2.3 dynamic 类型 84 4.2.4 string 类型 85 4.2.5 接口类型 85 ...
  • 4.1.7 decimal 类型 82 4.1.8 bool 类型 82 4.1.9 枚举类型 82 4.1.10 可以为 null 的类型 83 4.2 引用类型 83 4.2.1 类类型 84 4.2.2 对象类型 84 4.2.3 dynamic 类型 84 4.2.4 string 类型 85 4.2.5 接口类型 85 ...
  • C#教程(语言规范)

    2011-10-04 17:47:18
    4.1.7 decimal 类型 ... 76 4.1.8 bool 类型... 76 4.1.9 枚举类型... 76 4.1.10 可以为 null 的类型.. 76 4.2 引用类型 .. 77 4.2.1 类类型. 78 4.2.2 对象类型... 78 4.2.3 string 类型.. 78 4.2.4 接口...
  • 比较 使用 Contains 方法。 ArrayList Array1=new ArrayList(); Array1.Add("as"); bool b1=Array1.Contains("as"); MessageBox.Show(b1.ToString()); 第6页 C#(WINFORM)学习 找到集合中数量最多的一个元素 利用...
  • * \p{Digit} A decimal digit: [0-9] \p{Digit} 十进制数: [0-9] * \p{Alnum} An alphanumeric character:[\p{Alpha}\p{Digit}] \p{Alnum} 单个字符:[\p{Alpha}\p{Digit}] * \p{Punct} ...
  • C#规范1.2版.rar

    2008-11-25 15:22:22
    4.1.7 decimal 类型 76 4.1.8 bool 类型 76 4.1.9 枚举类型 77 4.2 引用类型 77 4.2.1 类类型 77 4.2.2 对象类型 78 4.2.3 string 类型 78 4.2.4 接口类型 78 4.2.5 数组类型 78 4.2.6 委托类型 78 4.3 装箱和拆箱 ...
  • C# 语言规范

    2008-01-16 07:22:16
    类型 149 4.1 值类型 150 4.1.1 System.ValueType 类型 151 4.1.2 默认构造函数 152 4.1.3 结构类型 153 4.1.4 简单类型 154 4.1.5 整型 155 4.1.6 浮点型 156 4.1.7 decimal 类型 157 ...

空空如也

空空如也

1 2 3
收藏数 59
精华内容 23
关键字:

decimal转string比较