226
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Làm cách nào tôi có thể hiển thị def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10' 1 dưới dạng def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10' 2?
Tôi đã thử điều này:
>>> '%E' % Decimal('40800000000.00000000000000') '4.080000E+10'Nhưng nó có thêm 0.
Hỏi ngày 2 tháng 8 năm 2011 lúc 14:16Aug 2, 2011 at 14:16
2
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10'
Trong '40800000000.00000000000000' của bạn, có nhiều số không quan trọng hơn có ý nghĩa giống như bất kỳ chữ số nào khác. Đó là lý do tại sao bạn phải nói rõ nơi bạn muốn dừng lại.
Nếu bạn muốn tự động xóa tất cả các số không theo dõi, bạn có thể thử:
def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10'
ABM
1.5782 Huy hiệu vàng25 Huy hiệu bạc41 Huy hiệu đồng2 gold badges25 silver badges41 bronze badges
Đã trả lời ngày 2 tháng 8 năm 2011 lúc 14:19Aug 2, 2011 at 14:19
Eumiroeumiroeumiro
199K34 Huy hiệu vàng294 Huy hiệu bạc259 Huy hiệu Đồng34 gold badges294 silver badges259 bronze badges
2
Đây là một ví dụ sử dụng hàm def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10' 3:
>>> "{:.2E}".format(Decimal('40800000000.00000000000000')) '4.08E+10'Thay vì định dạng, bạn cũng có thể sử dụng F-Strings:
>>> f"{Decimal('40800000000.00000000000000'):.2E}" '4.08E+10'Tài liệu chính thức
Định dạng ban đầu () đề xuất
Đã trả lời ngày 8 tháng 11 năm 2013 lúc 16:44Nov 8, 2013 at 16:44
Cees Timmerancees TimmermanCees Timmerman
16.2K10 Huy hiệu vàng88 Huy hiệu bạc119 Huy hiệu đồng10 gold badges88 silver badges119 bronze badges
1
Cho số của bạn
x = Decimal('40800000000.00000000000000')Bắt đầu từ Python 3,
'{:.2e}'.format(x)là cách được đề xuất để làm điều đó.
def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10' 4 có nghĩa là bạn muốn ký hiệu khoa học và def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10' 5 có nghĩa là bạn muốn 2 chữ số sau dấu chấm. Vì vậy, bạn sẽ nhận được def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10' 6
Đã trả lời ngày 12 tháng 3 năm 2017 lúc 15:47Mar 12, 2017 at 15:47
patapouf_aipatapouf_aipatapouf_ai
16.4K13 Huy hiệu vàng87 Huy hiệu bạc125 Huy hiệu đồng13 gold badges87 silver badges125 bronze badges
4
Không ai đề cập đến dạng ngắn của phương pháp def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10' 7:
Nhu cầu ít nhất Python 3.6
f"{Decimal('40800000000.00000000000000'):.2E}"(Tôi tin rằng nó giống như Cees Timmerman, chỉ ngắn hơn một chút)
Đã trả lời ngày 26 tháng 2 năm 2018 lúc 10:38Feb 26, 2018 at 10:38
3
Đây là một danh sách hợp nhất các câu trả lời và bình luận "đơn giản".
Python 3
from decimal import Decimal x = '40800000000.00000000000000' # Converted to Float x = Decimal(x) # ===================================== # `Dot Format` print("{0:.2E}".format(x)) # ===================================== # `%` Format print("%.2E" % x) # ===================================== # `f` Format print(f"{x:.2E}") # ===================================== # ALL Return: 4.08E+10 print((f"{x:.2E}") == ("%.2E" % x) == ("{0:.2E}".format(x))) # True print(type(f"{x:.2E}") == type("%.2E" % x) == type("{0:.2E}".format(x))) # True # =====================================Hoặc không có ________ 28
# NO IMPORT NEEDED FOR BASIC FLOATS y = '40800000000.00000000000000' y = float(y) # ===================================== # `Dot Format` print("{0:.2E}".format(y)) # ===================================== # `%` Format print("%.2E" % y) # ===================================== # `f` Format print(f"{y:.2E}") # ===================================== # ALL Return: 4.08E+10 print((f"{y:.2E}") == ("%.2E" % y) == ("{0:.2E}".format(y))) # True print(type(f"{y:.2E}") == type("%.2E" % y) == type("{0:.2E}".format(y))) # True # =====================================So sánh
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 0Vì vậy, đối với Python 3, bạn có thể chuyển đổi giữa bất kỳ ai trong ba người bây giờ.
Yêu thích của tôi:
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 1Đã trả lời ngày 27 tháng 10 năm 2019 lúc 4:29Oct 27, 2019 at 4:29
JayrizzojayrizzoJayRizzo
2.7923 huy hiệu vàng31 Huy hiệu bạc42 Huy hiệu đồng3 gold badges31 silver badges42 bronze badges
2
Xem các bảng từ định dạng chuỗi Python để chọn bố cục định dạng thích hợp. Trong trường hợp của bạn là def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10' 9.
Đã trả lời ngày 2 tháng 8 năm 2011 lúc 14:22Aug 2, 2011 at 14:22
Mihai Maruseacihai MaruseacMihai Maruseac
20,5K7 Huy hiệu vàng55 Huy hiệu bạc109 Huy hiệu đồng7 gold badges55 silver badges109 bronze badges
Số thập phân của tôi quá lớn đối với >>> "{:.2E}".format(Decimal('40800000000.00000000000000')) '4.08E+10' 0 vì vậy tôi đã phải cải thiện:
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 2Đây là một ví dụ sử dụng:
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 3Đã trả lời ngày 6 tháng 1 năm 2013 lúc 22:06Jan 6, 2013 at 22:06
Ubershmekelubershmekelubershmekel
11K7 Huy hiệu vàng69 Huy hiệu bạc84 Huy hiệu đồng7 gold badges69 silver badges84 bronze badges
1
Điều này làm việc tốt nhất cho tôi:
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 4Đã trả lời ngày 12 tháng 5 năm 2016 lúc 8:09May 12, 2016 at 8:09
Matthew Fitchmatthew FitchMatthew Fitch
Phim huy hiệu vàng1 gold badge10 silver badges13 bronze badges
Để chuyển đổi một số thập phân thành ký hiệu khoa học mà không cần chỉ định độ chính xác trong chuỗi định dạng và không bao gồm các số không kéo dài, tôi hiện đang sử dụng
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 5Để giữ bất kỳ số không kéo dài nào, chỉ cần loại bỏ >>> "{:.2E}".format(Decimal('40800000000.00000000000000')) '4.08E+10' 1.
Đã trả lời ngày 26 tháng 2 năm 2014 lúc 11:37Feb 26, 2014 at 11:37
MikemmikemMikeM
12.6K2 Huy hiệu vàng31 Huy hiệu bạc46 Huy hiệu đồng2 gold badges31 silver badges46 bronze badges
Tôi thích Python 3.x Way.
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 6>>> "{:.2E}".format(Decimal('40800000000.00000000000000')) '4.08E+10' 2 chỉ ra có bao nhiêu chữ số được hiển thị trong phần nổi.
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 7Đã trả lời ngày 11 tháng 9 năm 2019 lúc 3:33Sep 11, 2019 at 3:33
Đây là cái đơn giản nhất tôi có thể tìm thấy.
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 8('E' không nhạy cảm với trường hợp. Bạn cũng có thể sử dụng '.2E')
Đã trả lời ngày 5 tháng 4 năm 2020 lúc 22:05Apr 5, 2020 at 22:05
Thêm câu trả lời cập nhật để chỉ ra cách áp dụng >>> "{:.2E}".format(Decimal('40800000000.00000000000000')) '4.08E+10' 3 vào số nhỏ
from decimal import Decimal '%.2E' % Decimal('40800000000.00000000000000') # returns '4.08E+10' 9Đã trả lời ngày 14 tháng 10 năm 2021 lúc 10:41Oct 14, 2021 at 10:41
Beppe cbeppe cBeppe C
8.7992 Huy hiệu vàng15 Huy hiệu bạc35 Huy hiệu Đồng2 gold badges15 silver badges35 bronze badges
def format_e(n): a = '%E' % n return a.split('E')[0].rstrip('0').rstrip('.') + 'E' + a.split('E')[1] format_e(Decimal('40800000000.00000000000000')) # '4.08E+10' format_e(Decimal('40000000000.00000000000000')) # '4E+10' format_e(Decimal('40812300000.00000000000000')) # '4.08123E+10' 0
Đã trả lời ngày 12 tháng 1 năm 2015 lúc 10:19Jan 12, 2015 at 10:19