C#中的小数和百分数计算与byte数组操作
一、百分数
//按照四舍五入的国际标准 string p1 = (Math.Round(0.333367, 4)*100).ToString() + "%";//33.34% double dbdata = Math.Round((double)1 / (double)3, 5) * 100;//33.333 string p2 = String.Format("{0:F}", dbdata) + "%";//默认为保留两位
二、进制保留
带小数点
//保证分母为double double t = Math.Round(1.0 / 3, 5) * 100;//33.33 double tt = Math.Round(1.0 / 3.0, 5) * 100;//33.333 //m代表decimal. decimal res = 100m / 1000;//0.1
不带小数点
//保留为整数 double ttt = Math.Round(1.0 / 3.0, 0);//0
三、取余数
int a = 10 % 3;//取余数
byte数组操作
//1.字节转换 float m = 5f; var btValue = BitConverter.GetBytes(m).Reverse().ToArray(); //转为原值字符串 string m1 = System.Text.Encoding.Default.GetString(btValue); //2.byte 数组合并 byte[] data = new byte[10]; byte[] counts = new byte[3]; byte[] ndata = new byte[data.Length + counts.Length]; //将data复制到ndata data.CopyTo(ndata, 0);//从ndata的下标为0的地方开始存放 counts.CopyTo(ndata, data.Length); //3.string和byte[]转换 string str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //string转byte[]: byte[] byteArray1 = System.Text.Encoding.Default.GetBytes(str); //byte[] 转string: string str1 = System.Text.Encoding.Default.GetString(byteArray1); //string转ASCII byte[]: byte[] byteArray2 = System.Text.Encoding.ASCII.GetBytes(str); //ASCII byte[] 转string: string str2 = System.Text.Encoding.ASCII.GetString(byteArray2); //4.字符串拆分数组 string a = "A|B|C|D"; string[] a1 = a.Split('|'); //5.Int转为16进制 int b = 58; byte b1 = Convert.ToByte(b); //6.byte数组截取 byte[] test = byteArray2.Skip(4).Take(3).ToArray();//从下标4开始截取长度3 //7.List转为Byte[] List<byte> frameBytes = new List<byte>(); frameBytes.Add(0x9E); byte[] phoneNumByte = new byte[] { 0x01, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 };//定义一个数组 for (int i = 0; i < phoneNumByte.Length; i++) { frameBytes.Add(phoneNumByte[i]); } frameBytes = frameBytes.Concat(byteArray2).ToList<byte>();//两个list合并 //list转byte[] byte[] transByte = frameBytes.ToArray(); //byte[]转list List<byte> lb =transByte.ToList();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
赞 (0)