35 lines
1018 B
Dart
35 lines
1018 B
Dart
extension IntWidget on int? {
|
|
|
|
String _trimDecimalZero(String value) {
|
|
return value.endsWith('.0') ? value.substring(0, value.length - 2) : value;
|
|
}
|
|
|
|
/// 大于一万以万作为单位 大于一千以千作为单位,否则显示具体的数字
|
|
String humanizeFormat({
|
|
/// 是是否在数字和单位中间加空格
|
|
bool spacing = false,
|
|
/// 保留几位小数
|
|
int fractionDigits = 1,
|
|
}) {
|
|
int value = this ?? 0;
|
|
/// 小于 0 或者不是数的
|
|
if (value <= 0 || value.isNaN) {
|
|
return '0${spacing ? ' ' : ''}';
|
|
}
|
|
/// 大于等于 10000
|
|
if(value >= 10000) {
|
|
String format = _trimDecimalZero((value / 10000).toStringAsFixed(fractionDigits));
|
|
return '$format${spacing ? ' ' : ''}w';
|
|
}
|
|
|
|
/// 大于等于 1000
|
|
if(value >= 1000) {
|
|
String format = _trimDecimalZero((value / 1000).toStringAsFixed(fractionDigits));
|
|
return '$format${spacing ? ' ' : ''}k';
|
|
}
|
|
|
|
/// 小于1000
|
|
return '$value${spacing ? ' ' : ''}';
|
|
}
|
|
|
|
} |