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 frameBytes = new List();
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();//两个list合并
//list转byte[]
byte[] transByte = frameBytes.ToArray();
//byte[]转list
List lb =transByte.ToList();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(C#中的小数和百分数计算与byte数组操作)