Đây là mã của tôi:
x = 1.0
y = 100000.0
print x/y
Thương số của tôi hiển thị là
>>> '{:.20f}'.format[a]
'-0.00000000000000007186'
0.Có cách nào để đàn áp ký hiệu khoa học và làm cho nó hiển thị là
>>> '{:.20f}'.format[a]
'-0.00000000000000007186'
1 không? Tôi sẽ sử dụng kết quả như một chuỗi.
Martineau
Huy hiệu vàng 116K2525 gold badges160 silver badges285 bronze badges
hỏi ngày 18 tháng 3 năm 2009 lúc 15:27Mar 18, 2009 at 15:27
2
Sử dụng phiên bản mới hơn
>>> '{:.20f}'.format[a]
'-0.00000000000000007186'
2 [cũng nhớ để chỉ định số chữ số sau >>> '{:.20f}'.format[a]
'-0.00000000000000007186'
3 bạn muốn hiển thị, điều này phụ thuộc vào số lượng nổi nhỏ]. Xem ví dụ này:>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
Như được hiển thị ở trên, mặc định là 6 chữ số! Điều này không hữu ích cho ví dụ trường hợp của chúng tôi, vì vậy thay vào đó chúng tôi có thể sử dụng một cái gì đó như sau:
>>> '{:.20f}'.format[a]
'-0.00000000000000007186'
Cập nhật
Bắt đầu trong Python 3.6, điều này có thể được đơn giản hóa với chuỗi được định dạng mới, như sau:
>>> f'{a:.20f}'
'-0.00000000000000007186'
Đã trả lời ngày 19 tháng 10 năm 2015 lúc 16:41Oct 19, 2015 at 16:41
Aziz Altoaziz AltoAziz Alto
17.8K4 Huy hiệu vàng73 Huy hiệu bạc57 Huy hiệu đồng4 gold badges73 silver badges57 bronze badges
4
Với các phiên bản mới hơn của Python [2.6 trở lên], bạn có thể sử dụng
>>> '{:.20f}'.format[a]
'-0.00000000000000007186'
4 để thực hiện những gì @SilentGhost đã đề xuất:'{0:f}'.format[x/y]
Đã trả lời ngày 28 tháng 3 năm 2011 lúc 19:05Mar 28, 2011 at 19:05
Nmichaelsnmichaelsnmichaels
48.3K12 Huy hiệu vàng102 Huy hiệu bạc133 Huy hiệu đồng12 gold badges102 silver badges133 bronze badges
3
Một lựa chọn khác, nếu bạn đang sử dụng gấu trúc và muốn triệt tiêu ký hiệu khoa học cho tất cả các phao, là điều chỉnh các tùy chọn gấu trúc.
import pandas as pd
pd.options.display.float_format = '{:.2f}'.format
Đã trả lời ngày 24 tháng 5 năm 2019 lúc 15:34May 24, 2019 at 15:34
JjanjjanJJAN
7071 Huy hiệu vàng7 Huy hiệu bạc12 Huy hiệu đồng1 gold badge7 silver badges12 bronze badges
1
Hầu hết các câu trả lời ở trên yêu cầu bạn chỉ định độ chính xác. Nhưng điều gì sẽ xảy ra nếu bạn muốn hiển thị những chiếc phao như thế này, không có số không cần thiết:
1
0.1
0.01
0.001
0.0001
0.00001
0.000001
0.000000000001
>>> '{:.20f}'.format[a]
'-0.00000000000000007186'
5 có câu trả lời: >>> '{:.20f}'.format[a]
'-0.00000000000000007186'
6import numpy as np
def format_float[num]:
return np.format_float_positional[num, trim='-']
Đã trả lời ngày 25 tháng 9 năm 2019 lúc 21:06Sep 25, 2019 at 21:06
Dennis Golomazovdennis GolomazovDennis Golomazov
15.3k5 Huy hiệu vàng71 Huy hiệu bạc77 Huy hiệu đồng5 gold badges71 silver badges77 bronze badges
0
Trong trường hợp các mảng numpy, bạn có thể triệt tiêu với lệnh triệt tiêu như
import numpy as np
np.set_printoptions[suppress=True]
Joanis
8,90412 Huy hiệu vàng26 Huy hiệu bạc38 Huy hiệu đồng12 gold badges26 silver badges38 bronze badges
Đã trả lời ngày 24 tháng 1 lúc 7:36Jan 24 at 7:36
Saran Zebsaran ZebSaran Zeb
Huy hiệu 1211 Bạc5 Huy hiệu Đồng1 silver badge5 bronze badges
Điều này sẽ hoạt động cho bất kỳ số mũ nào:
def getExpandedScientificNotation[flt]:
str_vals = str[flt].split['e']
coef = float[str_vals[0]]
exp = int[str_vals[1]]
return_val = ''
if int[exp] > 0:
return_val += str[coef].replace['.', '']
return_val += ''.join[['0' for _ in range[0, abs[exp - len[str[coef].split['.'][1]]]]]]
elif int[exp] < 0:
return_val += '0.'
return_val += ''.join[['0' for _ in range[0, abs[exp] - 1]]]
return_val += str[coef].replace['.', '']
return return_val
Đã trả lời ngày 10 tháng 8 năm 2017 lúc 3:56Aug 10, 2017 at 3:56
Bạn có thể sử dụng chức năng
>>> '{:.20f}'.format[a]
'-0.00000000000000007186'
7 tích hợp.>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
0Đã trả lời ngày 26 tháng 6 năm 2021 lúc 21:31Jun 26, 2021 at 21:31
qwerty_urlqwerty_urlqwerty_url
4033 Huy hiệu bạc9 Huy hiệu Đồng3 silver badges9 bronze badges
Điều này đang sử dụng câu trả lời của Captain Cucumber, nhưng với 2 bổ sung.
1] Cho phép hàm có được số ký hiệu phi khoa học và chỉ trả lại chúng như là [vì vậy bạn có thể ném rất nhiều đầu vào rằng một số số là 0,00003123 so với 3.123E-05 và vẫn có hoạt động chức năng.
2] Đã thêm hỗ trợ cho các số âm. [Trong hàm gốc, một số âm sẽ kết thúc như 0,0000-108904 từ -1.08904E-05]
>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
1
Friskygrub
9493 Huy hiệu vàng12 Huy hiệu bạc24 Huy hiệu đồng3 gold badges12 silver badges24 bronze badges
Đã trả lời ngày 19 tháng 9 năm 2017 lúc 10:40Sep 19, 2017 at 10:40
Nếu đó là
>>> '{:.20f}'.format[a]
'-0.00000000000000007186'
8 thì hãy sử dụng >>> '{:.20f}'.format[a]
'-0.00000000000000007186'
9 tích hợp để thực hiện chuyển đổi chẳng hạn: >>> f'{a:.20f}'
'-0.00000000000000007186'
0 Trả lời: ________ 31Đã trả lời ngày 6 tháng 2 năm 2015 lúc 8:43Feb 6, 2015 at 8:43
U-571U-571U-571
4992 Huy hiệu vàng7 Huy hiệu bạc23 Huy hiệu đồng2 gold badges7 silver badges23 bronze badges
Ngoài câu trả lời của SG, bạn cũng có thể sử dụng mô -đun thập phân:
>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
2
Gsamara
70.4K41 Huy hiệu vàng181 Huy hiệu bạc286 Huy hiệu Đồng41 gold badges181 silver badges286 bronze badges
Đã trả lời ngày 18 tháng 3 năm 2009 lúc 15:34Mar 18, 2009 at 15:34
DanadanaDana
31.1K17 Huy hiệu vàng62 Huy hiệu bạc72 Huy hiệu đồng17 gold badges62 silver badges72 bronze badges
1
Vì đây là kết quả hàng đầu trên Google, tôi sẽ đăng ở đây sau khi không tìm được giải pháp cho vấn đề của mình. Nếu bạn đang tìm cách định dạng giá trị hiển thị của một đối tượng float và nó vẫn còn một sự nổi - không phải là một chuỗi, bạn có thể sử dụng giải pháp này:If you are looking to format the display value of a float object and have it remain a float - not a string, you can use this solution:
Tạo một lớp mới sửa đổi cách hiển thị các giá trị float.
>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
3Bạn có thể tự sửa đổi độ chính xác bằng cách thay đổi các giá trị số nguyên trong
>>> f'{a:.20f}'
'-0.00000000000000007186'
2Đã trả lời ngày 2 tháng 7 năm 2018 lúc 17:16Jul 2, 2018 at 17:16
Jared Marksjared MarksJared Marks
9088 Huy hiệu bạc13 Huy hiệu Đồng8 silver badges13 bronze badges
Một giải pháp đơn giản hơn để hiển thị một chiếc phao đến một số chữ số quan trọng tùy ý. Không có
>>> '{:.20f}'.format[a]
'-0.00000000000000007186'
5 hoặc danh sách toàn bộ yêu cầu ở đây:>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
4Tôi đang tước 0 và hiển thị các số nguyên đầy đủ trong ví dụ:
>>> f'{a:.20f}'
'-0.00000000000000007186'
4 thay vì 31400. Hãy thoải mái sửa đổi mã nếu đó không phải là thứ bạn thích.Testing:
>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
5Đã trả lời ngày 18 tháng 5 năm 2021 lúc 13:52May 18, 2021 at 13:52
SurboulisedogsurprisedogSurpriseDog
4066 Huy hiệu bạc17 Huy hiệu đồng6 silver badges17 bronze badges
Sử dụng 3.6.4, tôi đã gặp một vấn đề tương tự một cách ngẫu nhiên, một số trong tệp đầu ra sẽ được định dạng với ký hiệu khoa học khi sử dụng điều này:
>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
6Tất cả những gì tôi phải làm để sửa chữa nó là thêm 'f':
>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
7Đã trả lời ngày 13 tháng 4 năm 2018 lúc 23:07Apr 13, 2018 at 23:07
Tính đến 3.6 [có thể cũng hoạt động với 3.x hơi cũ hơn], đây là giải pháp của tôi:
>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
8Mục đích của tính toán
>>> f'{a:.20f}'
'-0.00000000000000007186'
5 là để đảm bảo chúng ta có đủ độ chính xác để tránh xa ký hiệu khoa học [độ chính xác mặc định vẫn là 6].Đối số
>>> f'{a:.20f}'
'-0.00000000000000007186'
6 thêm độ chính xác bổ sung để sử dụng cho các điểm thập phân. Vì điều này sử dụng định dạng >>> f'{a:.20f}'
'-0.00000000000000007186'
7, sẽ không có số 0 không đáng kể nào được thêm vào [không giống như định dạng >>> f'{a:.20f}'
'-0.00000000000000007186'
8]. >>> f'{a:.20f}'
'-0.00000000000000007186'
7 cũng sẽ chăm sóc các số nguyên vốn đã có số thập phân.>>> f'{a:.20f}'
'-0.00000000000000007186'
7 không yêu cầu đầu vào >>> '{:.20f}'.format[a]
'-0.00000000000000007186'
9, do đó là diễn viên.Đã trả lời ngày 22 tháng 7 năm 2019 lúc 1:52Jul 22, 2019 at 1:52
Alex Salex sAlex S
24.5K18 Huy hiệu vàng49 Huy hiệu bạc63 Huy hiệu đồng18 gold badges49 silver badges63 bronze badges
0
Tôi đã gặp một vấn đề tương tự một cách ngẫu nhiên, sử dụng giải pháp của mình:
>>> a = -7.1855143557448603e-17
>>> '{:f}'.format[a]
'-0.000000'
9Đã trả lời ngày 25 tháng 3 lúc 19:28Mar 25 at 19:28
MostafamostafaMostafa
111 huy hiệu bạc2 huy hiệu đồng1 silver badge2 bronze badges
1