diff --git a/backend/services/admin-service/src/infrastructure/persistence/repositories/user-detail-query.repository.impl.ts b/backend/services/admin-service/src/infrastructure/persistence/repositories/user-detail-query.repository.impl.ts index 9c5175a8..9d7b62ad 100644 --- a/backend/services/admin-service/src/infrastructure/persistence/repositories/user-detail-query.repository.impl.ts +++ b/backend/services/admin-service/src/infrastructure/persistence/repositories/user-detail-query.repository.impl.ts @@ -490,11 +490,16 @@ export class UserDetailQueryRepositoryImpl implements IUserDetailQueryRepository /** * 将 Decimal 转为字符串,保留合理精度 - * 数据库存的是实际金额,直接格式化为最多 8 位小数 + * 使用 toString() 避免 Prisma Decimal 的 toFixed 精度问题 */ private decimalToString(decimal: Decimal | null | undefined): string { if (!decimal) return '0'; - // 直接转字符串,去掉尾部多余的 0 - return decimal.toFixed(8).replace(/\.?0+$/, ''); + // 使用 toString() 获取原始值,去掉尾部多余的 0 + const str = decimal.toString(); + // 如果有小数点,去掉尾部的 0 + if (str.includes('.')) { + return str.replace(/\.?0+$/, ''); + } + return str; } }