Template
Core 基础设施:Flavor 三包体系、Drift+SQLCipher 加密数据库 7 拦截器 Dio 网络栈、CrashReporter 崩溃日志、Sealed Failure 错误体系 5 色板主题系统、Auth 认证骨架(Clean Architecture)、Dev Panel、Mock Adapter 通过验证:flutter analyze(0 errors)、flutter test(全绿)、staging APK 74.8MB
26 lines
760 B
Dart
26 lines
760 B
Dart
extension NumX on num {
|
|
/// 金额格式化:1234.5 → "1,234.50"
|
|
String get yuan =>
|
|
'¥${toStringAsFixed(2).replaceAllMapped(
|
|
RegExp(r'(\d)(?=(\d{3})+\.)'),
|
|
(m) => '${m[1]},',
|
|
)}';
|
|
|
|
/// 百分比:0.75 → "75%"
|
|
String get percent => '${(this * 100).toStringAsFixed(0)}%';
|
|
|
|
/// 文件大小:1024 → "1 KB"
|
|
String get bytesFmt {
|
|
if (this < 1024) return '$this B';
|
|
if (this < 1024 * 1024) return '${(this / 1024).toStringAsFixed(1)} KB';
|
|
if (this < 1024 * 1024 * 1024) {
|
|
return '${(this / 1024 / 1024).toStringAsFixed(1)} MB';
|
|
}
|
|
return '${(this / 1024 / 1024 / 1024).toStringAsFixed(1)} GB';
|
|
}
|
|
}
|
|
|
|
extension NullableNumX on num? {
|
|
String get orPlaceholder => this?.toString() ?? '-';
|
|
}
|