Hướng dẫn how do i turn off scientific notation in python? - làm cách nào để tắt ký hiệu khoa học trong python?

Đâ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 badges161 silver badges286 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

7171 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'
6

import 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

9.01412 Huy hiệu vàng26 Huy hiệu bạc39 Huy hiệu đồng12 gold badges26 silver badges39 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

4133 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àng13 Huy hiệu bạc24 Huy hiệu đồng3 gold badges13 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àng182 Huy hiệu bạc287 Huy hiệu đồng41 gold badges182 silver badges287 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.2K17 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'
3

Bạ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'
4

Tô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'
6

Tấ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'
8

Mụ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.6K18 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

Làm cách nào để loại bỏ E+ trong Python?

Làm thế nào để bạn dừng E+ trong Python?Sử dụng một chuỗi theo nghĩa đen để triệt tiêu ký hiệu khoa học Sử dụng cú pháp theo nghĩa đen f "{num: nf}" để biểu diễn num ở định dạng thập phân với n vị trí theo điểm thập phân.Use a string literal to suppress scientific notation Use the string literal syntax f"{num:. nf}" to represent num in decimal format with n places following the decimal point.

Làm thế nào để tôi thoát khỏi ký hiệu khoa học trong Python?

Tóm tắt: Sử dụng Chuỗi cú pháp theo nghĩa đen f "{number: .nf}" để đàn áp ký hiệu khoa học của một số vào biểu diễn dấu phẩy động của nó.Use the string literal syntax f"{number:. nf}" to suppress the scientific notation of a number to its floating-point representation.

Làm thế nào để bạn thay đổi một số khoa học thành bình thường trong Python?

Chúng ta có thể dễ dàng định dạng đến các vị trí thập phân thô với "%f" giống như "%. 6f" theo mặc định." % F" % 8.99284722486562E-05 sản xuất '0,000090'." % f" % 0,01 tạo ra '0,010000'."%f" which is same as "%. 6f" by default. "%f" % 8.99284722486562e-05 produces '0.000090' . "%f" % 0.01 produces '0.010000' .

Làm thế nào để bạn thoát khỏi ký hiệu khoa học?

Để thay đổi ký hiệu khoa học thành ký hiệu tiêu chuẩn, chúng tôi đảo ngược quá trình, di chuyển điểm thập phân sang phải.Thêm số không vào cuối số được chuyển đổi, nếu cần, để tạo ra một số cường độ thích hợp.moving the decimal point to the right. Add zeros to the end of the number being converted, if necessary, to produce a number of the proper magnitude.

Bài Viết Liên Quan

Chủ Đề