C#中的小数和百分数计算与byte数组操作

Viridis ·
更新时间:2024-11-13
· 458 次阅读

一、百分数 //按照四舍五入的国际标准 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();



byte数组 C# byte

需要 登录 后方可回复, 如果你还没有账号请 注册新账号