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
200K34 Huy hiệu vàng296 Huy hiệu bạc259 Huy hiệu Đồng34 gold badges296 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.3k10 Huy hiệu vàng89 Huy hiệu bạc120 Huy hiệu đồng10 gold badges89 silver badges120 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.6K13 Huy hiệu vàng88 Huy hiệu bạc126 Huy hiệu đồng13 gold badges88 silver badges126 bronze badges
5
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.8223 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
Đ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'
2Đã 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
2451 Huy hiệu vàng11 Huy hiệu bạc13 Huy hiệu đồng1 gold badge11 silver badges13 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'
3Đây là một ví dụ sử dụng:
from decimal import Decimal
'%.2E' % Decimal['40800000000.00000000000000']
# returns '4.08E+10'
4Đã trả lời ngày 6 tháng 1 năm 2013 lúc 22:06Jan 6, 2013 at 22:06
Ubershmekelubershmekelubershmekel
11.1k7 Huy hiệu vàng69 Huy hiệu bạc84 Huy hiệu đồng7 gold badges69 silver badges84 bronze badges
1
Để 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.7k2 Huy hiệu vàng32 Huy hiệu bạc47 Huy hiệu đồng2 gold badges32 silver badges47 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
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'
8Đã 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
9.0732 Huy hiệu vàng15 Huy hiệu bạc36 Huy hiệu đồng2 gold badges15 silver badges36 bronze badges
Đâ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'
9['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
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