Hướng dẫn how do you get rid of the e value in python? - làm thế nào để bạn loại bỏ giá trị e 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.

Hướng dẫn how do you get rid of the e value in python? - làm thế nào để bạn loại bỏ giá trị e trong python?

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

Hướng dẫn how do you get rid of the e value in python? - làm thế nào để bạn loại bỏ giá trị e trong python?

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

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

Hướng dẫn how do you get rid of the e value in python? - làm thế nào để bạn loại bỏ giá trị e trong python?

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

Hướng dẫn how do you get rid of the e value in python? - làm thế nào để bạn loại bỏ giá trị e trong python?

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

Hướng dẫn how do you get rid of the e value in python? - làm thế nào để bạn loại bỏ giá trị e trong python?

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

Hướng dẫn how do you get rid of the e value in python? - làm thế nào để bạn loại bỏ giá trị e trong python?

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.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

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

Làm cách nào để loại bỏ E+ trong gấu trúc ?..
Giải pháp 1: Sử dụng .Round () df.Round (5).
Giải pháp 2: Sử dụng Áp dụng để thay đổi định dạng. df.apply (lambda x: ' % .5f' % x, trục = 1).
Giải pháp 3: Sử dụng. set_option () Lưu ý rằng ..
Giải pháp 4: Gán màn hình. float_format. Bạn có thể thay đổi định dạng hiển thị bằng cách sử dụng bất kỳ Python Formatter:.

Làm thế nào để tôi thoát khỏi ký hiệu E?

1. (1) Nhấp chuột phải vào một ô mà bạn muốn xóa ký hiệu khoa học và (2) chọn các ô định dạng.Địa điểm đến 0 và (3) bấm OK.Right-click a cell where you want to remove scientific notation, and (2) choose Format Cells… 2. In the Format Cells window, (1) select the Number category, (2) set the number of decimal places to 0, and (3) click OK.

Làm thế nào để bạn chuyển đổi giá trị E thành một số trong Python?

Số cấp số nhân là một cách đại diện cho một số ...
Đầu tiên, chúng tôi sẽ khai báo một số theo cấp số nhân và lưu nó trong một biến ..
Sau đó, chúng tôi sẽ sử dụng hàm float () để chuyển đổi nó thành kiểu dữ liệu float ..
Sau đó, chúng tôi sẽ in số được chuyển đổi ..

Làm thế nào để bạn hiển thị số mà không có e trong Python?

Có bốn cách thể hiện tất cả các số thập phân khi sử dụng python pandas thay vì ký hiệu khoa học ...
Giải pháp 1: Sử dụng .Round ().
Giải pháp 2: Sử dụng Áp dụng để thay đổi định dạng ..
Giải pháp 3: Sử dụng .set_option ().
Giải pháp 4: Gán Display.Float_Format ..