Skip to content

Commit 8b8ae83

Browse files
committed
feat: improve float value display in export excel
1 parent 80dc9a3 commit 8b8ae83

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

backend/apps/chat/curd/chat.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import datetime
2+
from decimal import Decimal
23
from typing import List, Optional, Union, Dict, Any
34

45
import orjson
@@ -207,7 +208,7 @@ def format_json_list_data(origin_data: list[dict]):
207208
value = str(value)
208209
# 小数且超过15位有效数字 → 转字符串并标记为文本列
209210
elif isinstance(value, float):
210-
decimal_str = format(value, '.16f').rstrip('0').rstrip('.')
211+
decimal_str = str(Decimal(str(value))).rstrip('0').rstrip('.')
211212
if len(decimal_str) > 15:
212213
value = str(value)
213214
_row[key] = value

backend/common/utils/data_format.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from decimal import Decimal
2+
13
import pandas as pd
24

35
from apps.chat.models.chat_model import AxisObj
@@ -53,7 +55,7 @@ def format_float_without_scientific(value):
5355
"""格式化浮点数,避免科学记数法"""
5456
if value == 0:
5557
return "0"
56-
formatted = f"{value:.15f}"
58+
formatted = str(Decimal(str(value)))
5759
if '.' in formatted:
5860
formatted = formatted.rstrip('0').rstrip('.')
5961
return formatted

0 commit comments

Comments
 (0)