Hướng dẫn can an int be a decimal python? - một int có thể là một con trăn thập phân không?

Tôi có một chuỗi ở định dạng: 'nn.nnnnn' trong Python và tôi muốn chuyển đổi nó thành một số nguyên.

Chuyển đổi trực tiếp thất bại:

>>> s = '23.45678'
>>> i = int(s)
Traceback (most recent call last):
  File "", line 1, in 
ValueError: invalid literal for int() with base 10: '23.45678'

Tôi có thể chuyển đổi nó thành một số thập phân bằng cách sử dụng:

>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678

Tôi cũng có thể chia thành '.', Sau đó trừ số thập phân từ 0, sau đó thêm nó vào toàn bộ số ... yuck.

Nhưng tôi thích có nó như một INT, mà không cần chuyển đổi loại không cần thiết hoặc điều động.

hỏi ngày 7 tháng 7 năm 2009 lúc 20:35Jul 7, 2009 at 20:35

Hướng dẫn can an int be a decimal python? - một int có thể là một con trăn thập phân không?

Matt Hampelmatt HampelMatt Hampel

4.92111 Huy hiệu vàng48 Huy hiệu bạc78 Huy hiệu đồng11 gold badges48 silver badges78 bronze badges

1

Còn cái này thì sao?

>>> s = '23.45678'
>>> int(float(s))
23

Or...

>>> int(Decimal(s))
23

Or...

>>> int(s.split('.')[0])
23

Tôi nghi ngờ nó sẽ trở nên đơn giản hơn thế nhiều, tôi sợ. Chỉ cần chấp nhận nó và tiếp tục.

Đã trả lời ngày 7 tháng 7 năm 2009 lúc 20:36Jul 7, 2009 at 20:36

Hướng dẫn can an int be a decimal python? - một int có thể là một con trăn thập phân không?

Paolo Bergantinopaolo BergantinoPaolo Bergantino

473K79 Huy hiệu vàng518 Huy hiệu bạc436 Huy hiệu Đồng79 gold badges518 silver badges436 bronze badges

2

Bạn muốn loại hành vi làm tròn nào? Bạn có 2.67 để biến thành 3 hay 2. Nếu bạn muốn sử dụng làm tròn, hãy thử điều này:

s = '234.67'
i = int(round(float(s)))

Nếu không, chỉ cần làm:

s = '234.67'
i = int(float(s))

Đã trả lời ngày 7 tháng 7 năm 2009 lúc 20:41Jul 7, 2009 at 20:41

>>> s = '23.45678'
>>> int(float(s))
23
>>> int(round(float(s)))
23
>>> s = '23.54678'
>>> int(float(s))
23
>>> int(round(float(s)))
24

Bạn không chỉ định nếu bạn muốn làm tròn hay không ...

Đã trả lời ngày 7 tháng 7 năm 2009 lúc 20:47Jul 7, 2009 at 20:47

Kevin Littlekevin LittleKevin Little

12.2k5 Huy hiệu vàng38 Huy hiệu bạc47 Huy hiệu đồng5 gold badges38 silver badges47 bronze badges

Bạn đã có thể sử dụng:

s = '23.245678'
i = int(float(s))

Đã trả lời ngày 7 tháng 7 năm 2009 lúc 20:40Jul 7, 2009 at 20:40

GBCGBCgbc

8.3056 Huy hiệu vàng34 Huy hiệu bạc 30 Huy hiệu Đồng6 gold badges34 silver badges30 bronze badges

"Chuyển đổi" chỉ có ý nghĩa khi bạn thay đổi từ kiểu dữ liệu này sang loại dữ liệu khác mà không mất độ trung thực. Số được biểu thị bằng chuỗi là một chiếc phao và sẽ mất độ chính xác khi bị buộc vào INT.

Thay vào đó, bạn muốn làm tròn, có lẽ (tôi hy vọng rằng các con số không đại diện cho tiền tệ vì sau đó làm tròn trở nên phức tạp hơn rất nhiều).

round(float('23.45678'))

Đã trả lời ngày 7 tháng 7 năm 2009 lúc 20:45Jul 7, 2009 at 20:45

JosefassadjosefassadJosefAssad

3.90427 Huy hiệu bạc37 Huy hiệu đồng27 silver badges37 bronze badges

Biểu thức

>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
2 được đề cập bởi người khác là tốt nhất nếu bạn muốn cắt giảm giá trị. Nếu bạn muốn làm tròn, sử dụng
>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
3 nếu thuật toán tròn phù hợp với những gì bạn muốn (xem tài liệu tròn), nếu không bạn nên sử dụng
>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
4 và một nếu thuật toán làm tròn của nó.

Đã trả lời ngày 7 tháng 7 năm 2009 lúc 20:48Jul 7, 2009 at 20:48

Kathy Van Stonekathy Van StoneKathy Van Stone

25K3 Huy hiệu vàng31 Huy hiệu bạc40 Huy hiệu đồng3 gold badges31 silver badges40 bronze badges

>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
0

sẽ cung cấp cho bạn một giá trị số nguyên, nhưng một loại float. Tuy nhiên, với việc gõ vịt của Python, loại thực tế thường không liên quan lắm. Điều này cũng sẽ làm tròn giá trị mà bạn có thể không muốn. Thay thế 'vòng' bằng 'int' và bạn sẽ có nó bị cắt và một int thực tế. Như thế này:

>>> from decimal import *
>>> d = Decimal(s)
>>> print d
23.45678
1

Nhưng, một lần nữa, 'loại' thực tế thường không quan trọng.

Đã trả lời ngày 7 tháng 7 năm 2009 lúc 20:47Jul 7, 2009 at 20:47

Kevin Littlekevin Littlerledley

12.2k5 Huy hiệu vàng38 Huy hiệu bạc47 Huy hiệu đồng1 gold badge12 silver badges7 bronze badges

Bạn đã có thể sử dụng:

Đã trả lời ngày 7 tháng 7 năm 2009 lúc 20:40

GBCGBC

8.3056 Huy hiệu vàng34 Huy hiệu bạc 30 Huy hiệu Đồng

"Chuyển đổi" chỉ có ý nghĩa khi bạn thay đổi từ kiểu dữ liệu này sang loại dữ liệu khác mà không mất độ trung thực. Số được biểu thị bằng chuỗi là một chiếc phao và sẽ mất độ chính xác khi bị buộc vào INT.

Thay vào đó, bạn muốn làm tròn, có lẽ (tôi hy vọng rằng các con số không đại diện cho tiền tệ vì sau đó làm tròn trở nên phức tạp hơn rất nhiều).

Đã trả lời ngày 7 tháng 7 năm 2009 lúc 20:45Nov 7, 2021 at 17:46

A'int có thể là một số thập phân?

Ý tưởng chính: Giống như toàn bộ số, số nguyên không bao gồm phân số hoặc số thập phân.integers don't include fractions or decimals.

Bạn có thể có số thập phân trong Python?

Theo mặc định, Python diễn giải bất kỳ số nào bao gồm một điểm thập phân dưới dạng số điểm nổi chính xác kép.Số thập phân là một loại dấu thập phân trôi nổi có độ chính xác hơn và phạm vi nhỏ hơn so với phao.Nó là thích hợp cho các tính toán tài chính và tiền tệ.. The Decimal is a floating decimal point type which more precision and a smaller range than the float. It is appropriate for financial and monetary calculations.

Loại dữ liệu nào là số thập phân trong Python?

Số điểm nổi hoặc phao là một loại dữ liệu Python khác.Phao là số thập phân, tích cực, tiêu cực và không.Phao cũng có thể là số trong ký hiệu khoa học có chứa số mũ.Trong Python, một chiếc phao có thể được xác định bằng cách sử dụng một điểm thập phân. are another Python data type. Floats are decimals, positive, negative and zero. Floats can also be numbers in scientific notation which contain exponents. In Python, a float can be defined using a decimal point .