内存大小转换
/// 将文件大小 格式化
/// [fileSize] 文件大小
/// [position] 保留几位小数
/// [scale] 比例 1000/1024
/// [specified] 0-5 指定的单位 0是B 1是KB 2是mb 3是GB 4是TB 5是PB
static String formatFileSize(fileSize,
{position = 2, scale = 1024, specified = -1}) {
double num = 0;
List sizeUnit = ["B", "KB", "MB", "GB", "TB", "PB"];
if (fileSize is String) {
num = double.parse(fileSize);
} else if (fileSize is int || fileSize is double) {
num = fileSize;
}
//获取他的单位
if (num > 0) {
int unit = log(num) ~/ log(scale);
if (specified >= 0 && specified < sizeUnit.length) {
unit = specified;
}
double size = num / pow(scale, unit);
String numStr = formatNum(num: size, position: position);
return numStr + " " + sizeUnit[unit];
}
return "0 B";
}
小数点的格式化
///格式化数字 如果小数后面为0则不显示小数点
///[num]要格式化的数字 double 类型
/// [position] 保留几位小数 int类型
static formatNum({required double num, required int position}) {
String numStr = num.toString();
int dotIndex = numStr.indexOf(".");
///当前数字有小数且需要小数位数小于需要的 直接返回当前数字
if (num % 1 != 0 && (numStr.length - 1 - dotIndex < position)) {
return numStr;
}
int numbs = pow(10, position).toInt();
//模运算 取余数
double remainder = num * numbs % numbs;
//小数点后位数如果小于0则表示只保留整数,余数小于1不会进位防止出现200.01保留一位小数出现200.0的情况
if (position > 0 && remainder >= 0.5) {
return num.toStringAsFixed(position);
}
return num.toStringAsFixed(0);
}
将POST 请求数据 打印出来
///格式化url,将post和get请求以get链接输出
static String formattedUrl(params) {
var urlParamsStr = "";
if (params?.isNotEmpty ?? false) {
var tempArr = [];
params.forEach((k, v) {
tempArr.add(k + '=' + v.toString());
});
urlParamsStr = tempArr.join('&');
}
return urlParamsStr;
}
网友评论