|
|
@@ -0,0 +1,112 @@
|
|
|
+# 创建数字助手类实现万分位转换
|
|
|
+
|
|
|
+**时间**: 2025年06月09日 11:34
|
|
|
+**任务**: 在 UCore\Helper 下创建数字助手类,实现万分位数据表示转换功能
|
|
|
+
|
|
|
+## 任务概述
|
|
|
+
|
|
|
+用户需要在 UCore\Helper 命名空间下创建数字助手类,实现万分位数据表示转换静态方法,将数字如 100020 转换为 "10万20" 的中文万分位表示法。
|
|
|
+
|
|
|
+## 实现内容
|
|
|
+
|
|
|
+### 1. 创建的文件
|
|
|
+
|
|
|
+- `UCore/Helper/Number.php` - 数字助手类
|
|
|
+- `UCore/Helper/README_Number.md` - 使用说明文档
|
|
|
+
|
|
|
+### 2. 核心功能
|
|
|
+
|
|
|
+#### formatToWan() 方法
|
|
|
+- 将数字转换为中文万分位表示法
|
|
|
+- 示例:100020 → "10万20",50000 → "5万"
|
|
|
+- 支持正负数、整数、小数处理
|
|
|
+
|
|
|
+#### parseFromWan() 方法
|
|
|
+- 万分位表示转换回数字
|
|
|
+- 示例:"10万20" → 100020
|
|
|
+
|
|
|
+#### smartFormat() 方法
|
|
|
+- 智能选择格式化方式
|
|
|
+- 大于等于1万使用万分位,小于1万使用千分位
|
|
|
+
|
|
|
+#### formatThousands() 方法
|
|
|
+- 标准千分位数字格式化
|
|
|
+
|
|
|
+### 3. 特性
|
|
|
+
|
|
|
+- **多数据类型支持**:整数、浮点数、字符串数字
|
|
|
+- **负数处理**:自动识别和处理负数
|
|
|
+- **小数支持**:保留小数部分并智能格式化
|
|
|
+- **双向转换**:数字↔万分位表示
|
|
|
+- **中文友好**:使用中文"万"字符
|
|
|
+
|
|
|
+## 测试验证
|
|
|
+
|
|
|
+通过测试验证了以下功能:
|
|
|
+
|
|
|
+```
|
|
|
+万分位转换测试:
|
|
|
+100020 -> 10万20
|
|
|
+50000 -> 5万
|
|
|
+10000 -> 1万
|
|
|
+9999 -> 9999
|
|
|
+123456 -> 12万3456
|
|
|
+1000000 -> 100万
|
|
|
+-100020 -> -10万20
|
|
|
+100020.5 -> 10万20.5
|
|
|
+
|
|
|
+反向转换测试:
|
|
|
+10万20 -> 100020
|
|
|
+5万 -> 50000
|
|
|
+12万3456 -> 123456
|
|
|
+-10万20 -> -100020
|
|
|
+```
|
|
|
+
|
|
|
+## 使用示例
|
|
|
+
|
|
|
+### 在后台控制器中替换 number_format
|
|
|
+
|
|
|
+```php
|
|
|
+// 原代码
|
|
|
+$balance = number_format($account->balance);
|
|
|
+
|
|
|
+// 使用万分位表示
|
|
|
+use UCore\Helper\Number;
|
|
|
+$balance = Number::formatToWan($account->balance);
|
|
|
+```
|
|
|
+
|
|
|
+### 在Grid中使用
|
|
|
+
|
|
|
+```php
|
|
|
+$grid->column('balance', '余额')->display(function ($value) {
|
|
|
+ return Number::formatToWan($value);
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+## 技术要点
|
|
|
+
|
|
|
+1. 使用 `mb_strpos()` 和 `mb_substr()` 处理中文字符
|
|
|
+2. 智能处理小数部分,自动去除末尾的0
|
|
|
+3. 万分位转换只在数字≥10000时生效
|
|
|
+4. 所有方法都是静态方法,便于直接调用
|
|
|
+
|
|
|
+## 提交信息
|
|
|
+
|
|
|
+```
|
|
|
+新增数字助手类:实现万分位数据表示转换功能
|
|
|
+
|
|
|
+- 创建 UCore\Helper\Number 类
|
|
|
+- 实现 formatToWan() 方法:将数字转换为中文万分位表示(如 100020 -> 10万20)
|
|
|
+- 实现 parseFromWan() 方法:万分位表示转换回数字
|
|
|
+- 实现 smartFormat() 方法:智能选择格式化方式
|
|
|
+- 实现 formatThousands() 方法:标准千分位格式化
|
|
|
+- 支持正负数、整数、小数的处理
|
|
|
+- 添加详细的使用说明文档
|
|
|
+```
|
|
|
+
|
|
|
+## 完成状态
|
|
|
+
|
|
|
+✅ 任务已完成并提交到代码仓库
|
|
|
+✅ 功能测试通过
|
|
|
+✅ 文档完善
|
|
|
+✅ 代码已推送到远程仓库
|