Hướng dẫn format float as integer python - định dạng float dưới dạng python số nguyên

Không có trí tuệ nhanh chóng:

some_float = 1234.5678
print '%02d' % some_float  # 1234

some_float = 1234.5678
print '{WHAT?}'.format(some_float) # I want 1234 here too

Lưu ý:

class MyFormatter(Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 't':  # Truncate and render as int
            return str(int(value))
        return super(MyFormatter, self).format_field(value, format_spec)

MyFormatter().format("{0} {1:t}", "Hello", 4.567)  # returns "Hello 4"
0 không phải là một tùy chọn, vì nó làm tròn (trả về
class MyFormatter(Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 't':  # Truncate and render as int
            return str(int(value))
        return super(MyFormatter, self).format_field(value, format_spec)

MyFormatter().format("{0} {1:t}", "Hello", 4.567)  # returns "Hello 4"
1 trong ví dụ này).

class MyFormatter(Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 't':  # Truncate and render as int
            return str(int(value))
        return super(MyFormatter, self).format_field(value, format_spec)

MyFormatter().format("{0} {1:t}", "Hello", 4.567)  # returns "Hello 4"
2 chính xác là điều tôi đang cố gắng tránh, xin đừng đề xuất điều đó.

Hướng dẫn format float as integer python - định dạng float dưới dạng python số nguyên

Asclepius

52.2K15 Huy hiệu vàng151 Huy hiệu bạc133 Huy hiệu đồng15 gold badges151 silver badges133 bronze badges

Đã hỏi ngày 22 tháng 11 năm 2012 lúc 11:19Nov 22, 2012 at 11:19

Hướng dẫn format float as integer python - định dạng float dưới dạng python số nguyên

6

Điều đáng nói là hành vi tích hợp cho cách các phao được hiển thị bằng cách sử dụng các chuỗi định dạng thô. Nếu bạn biết trước phần phân đoạn của bạn nằm ở đâu đối với 0,5, bạn có thể tận dụng chuỗi định dạng mà bạn đã cố gắng ban đầu nhưng phát hiện ra nó không giảm tác dụng phụ làm tròn

class MyFormatter(Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 't':  # Truncate and render as int
            return str(int(value))
        return super(MyFormatter, self).format_field(value, format_spec)

MyFormatter().format("{0} {1:t}", "Hello", 4.567)  # returns "Hello 4"
3. Kiểm tra các ví dụ sau ...

>>> "{:0.0f}".format(1.999)
'2'
>>> "{:0.0f}".format(1.53)
'2'
>>> "{:0.0f}".format(1.500)
'2'
>>> "{:0.0f}".format(1.33)
'1'
>>> "{:0.0f}".format(0.501)
'1'
>>> "{:0.0f}".format(0.5)
'0'
>>> "{:0.0f}".format(0.1)
'0'
>>> "{:0.0f}".format(0.001)
'0'

Như bạn có thể thấy có hành vi làm tròn đằng sau hậu trường. Trong trường hợp của tôi khi tôi có một cơ sở dữ liệu chuyển đổi INT thành phao, tôi biết rằng tôi đã xử lý một phần không phân đoạn trước và chỉ muốn kết xuất trong một mẫu HTML phần INT của phao làm cách giải quyết. Tất nhiên nếu bạn không biết trước phần phân số, bạn sẽ cần thực hiện một hoạt động cắt ngắn của một số loại đầu tiên trên phao.

Đã trả lời ngày 7 tháng 3 năm 2019 lúc 19:21Mar 7, 2019 at 19:21

Hướng dẫn format float as integer python - định dạng float dưới dạng python số nguyên

JXRAMOSJXRAMOSjxramos

6.4606 Huy hiệu vàng49 Huy hiệu bạc93 Huy hiệu Đồng6 gold badges49 silver badges93 bronze badges

Có thể mở rộng ngôn ngữ định dạng chuỗi tiêu chuẩn bằng cách mở rộng chuỗi lớp.formatter:

class MyFormatter(Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 't':  # Truncate and render as int
            return str(int(value))
        return super(MyFormatter, self).format_field(value, format_spec)

MyFormatter().format("{0} {1:t}", "Hello", 4.567)  # returns "Hello 4"

Đã trả lời ngày 22 tháng 11 năm 2012 lúc 13:49Nov 22, 2012 at 13:49

Berealberealbereal

30.3k6 Huy hiệu vàng53 Huy hiệu bạc93 Huy hiệu Đồng6 gold badges53 silver badges93 bronze badges

0

Những công việc này:

from math import trunc
some_float = 1234.5678

print '{:d}'.format(trunc(some_float))
=> 1234

Hoặc chỉ làm điều này, cho vấn đề đó:

print trunc(some_float)
=> 1234

Tôi nghĩ rằng đó là một câu trả lời chấp nhận được, nó tránh được sự chuyển đổi thành

class MyFormatter(Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 't':  # Truncate and render as int
            return str(int(value))
        return super(MyFormatter, self).format_field(value, format_spec)

MyFormatter().format("{0} {1:t}", "Hello", 4.567)  # returns "Hello 4"
4. Lưu ý rằng trong đoạn trích này:
class MyFormatter(Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 't':  # Truncate and render as int
            return str(int(value))
        return super(MyFormatter, self).format_field(value, format_spec)

MyFormatter().format("{0} {1:t}", "Hello", 4.567)  # returns "Hello 4"
5 Một chuyển đổi ngầm thành
class MyFormatter(Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 't':  # Truncate and render as int
            return str(int(value))
        return super(MyFormatter, self).format_field(value, format_spec)

MyFormatter().format("{0} {1:t}", "Hello", 4.567)  # returns "Hello 4"
4 đang xảy ra, bạn không thể tránh được một số loại chuyển đổi để in ở định dạng mong muốn.

Đã trả lời ngày 22 tháng 11 năm 2012 lúc 11:25Nov 22, 2012 at 11:25

Hướng dẫn format float as integer python - định dạng float dưới dạng python số nguyên

Óscar Lópezóscar LópezÓscar López

228K35 Huy hiệu vàng304 Huy hiệu bạc377 Huy hiệu đồng35 gold badges304 silver badges377 bronze badges

Điều này cũng sẽ hoạt động:

some_float = 1234.5678
f = lambda x: str(x)[:str(x).find('.')]
print '{}'.format(f(some_float))
=> 1234

Sau khi thực hiện kiểm tra %thời gian, có vẻ như đây là một chút nhanh hơn phương pháp cắt.

Đã trả lời ngày 3 tháng 12 năm 2015 lúc 8:35Dec 3, 2015 at 8:35

5

Hướng dẫn format float as integer python - định dạng float dưới dạng python số nguyên

%s hoạt động một trình giữ chỗ cho một chuỗi trong khi %D hoạt động như một trình giữ chỗ cho một số. Các giá trị liên quan của chúng được truyền qua thông qua một tuple bằng toán tử %.string.format(), including float and integer formatting. Let’s see how to format float in Python in detail.

Định dạng các số điểm nổi bằng cách chỉ định độ chính xác giúp tổ chức dữ liệu trực quan. Để định dạng số trong Python, phương thức truy cập của chúng tôi là một chuỗi.format (), bao gồm định dạng float và số nguyên. Hãy cùng xem cách định dạng Float trong Python một cách chi tiết.format float values in Python, use the format() method. The format() is a built-in Python formatting method that allows multiple substitutions and value formatting.

Để định dạng định dạng trong python, hãy sử dụng phương thức định dạng (). Định dạng () là một phương thức định dạng Python tích hợp cho phép nhiều thay thế và định dạng giá trị.

x = 211911461911461819112146
y = 2**70

print(x / y)

Hãy để lấy một ví dụ.

179.4959901398329

Đầu ra.2f.

x = 211911461911461819112146
y = 2**70
z = x / y

print("%.2f" % z)

Hãy để lấy một ví dụ.

179.50

Đầu ra%.3f.

>>> "{:0.0f}".format(1.999)
'2'
>>> "{:0.0f}".format(1.53)
'2'
>>> "{:0.0f}".format(1.500)
'2'
>>> "{:0.0f}".format(1.33)
'1'
>>> "{:0.0f}".format(0.501)
'1'
>>> "{:0.0f}".format(0.5)
'0'
>>> "{:0.0f}".format(0.1)
'0'
>>> "{:0.0f}".format(0.001)
'0'
0

Hãy để lấy một ví dụ.

>>> "{:0.0f}".format(1.999)
'2'
>>> "{:0.0f}".format(1.53)
'2'
>>> "{:0.0f}".format(1.500)
'2'
>>> "{:0.0f}".format(1.33)
'1'
>>> "{:0.0f}".format(0.501)
'1'
>>> "{:0.0f}".format(0.5)
'0'
>>> "{:0.0f}".format(0.1)
'0'
>>> "{:0.0f}".format(0.001)
'0'
1

Đầu ra0.496 prints as it is since we want a floating value up to three decimal places.

Để định dạng giá trị phao lên đến hai vị trí thập phân, hãy sử dụng %.2f.

Để định dạng tối đa ba vị trí thập phân, hãy sử dụng & nbsp;%3f.

Bạn có thể thấy rằng khi chúng ta chỉ in hai vị trí thập phân, nó sẽ tự động làm tròn đến số nguyên gần nhất. Tuy nhiên, in một số lên đến ba vị trí thập phân không đi vòng đến số nguyên gần nhất. Các bản in 0,496 vì chúng tôi muốn có giá trị nổi lên đến ba chữ số thập phân.

Các máy tính là nhị phân, vì vậy chúng lưu trữ các số điểm nổi dưới dạng một số nguyên và sau đó chia nó cho một công suất hai và in giá trị như từ bộ nhớ.

Sử dụng phương thức định dạng ()

Hãy để lấy một ví dụ.

179.50

Đầu ra

>>> "{:0.0f}".format(1.999)
'2'
>>> "{:0.0f}".format(1.53)
'2'
>>> "{:0.0f}".format(1.500)
'2'
>>> "{:0.0f}".format(1.33)
'1'
>>> "{:0.0f}".format(0.501)
'1'
>>> "{:0.0f}".format(0.5)
'0'
>>> "{:0.0f}".format(0.1)
'0'
>>> "{:0.0f}".format(0.001)
'0'
4

Hãy để lấy một ví dụ.

>>> "{:0.0f}".format(1.999)
'2'
>>> "{:0.0f}".format(1.53)
'2'
>>> "{:0.0f}".format(1.500)
'2'
>>> "{:0.0f}".format(1.33)
'1'
>>> "{:0.0f}".format(0.501)
'1'
>>> "{:0.0f}".format(0.5)
'0'
>>> "{:0.0f}".format(0.1)
'0'
>>> "{:0.0f}".format(0.001)
'0'
5

Đầu ra

Để định dạng giá trị phao lên đến hai vị trí thập phân, hãy sử dụng %.2f.

Để định dạng tối đa ba vị trí thập phân, hãy sử dụng & nbsp;%3f.round() is a built-in Python method that returns the floating-point number rounded off to the given digits after the decimal point. You can use the round() method to format the float value.

>>> "{:0.0f}".format(1.999)
'2'
>>> "{:0.0f}".format(1.53)
'2'
>>> "{:0.0f}".format(1.500)
'2'
>>> "{:0.0f}".format(1.33)
'1'
>>> "{:0.0f}".format(0.501)
'1'
>>> "{:0.0f}".format(0.5)
'0'
>>> "{:0.0f}".format(0.1)
'0'
>>> "{:0.0f}".format(0.001)
'0'
6

Hãy để lấy một ví dụ.

>>> "{:0.0f}".format(1.999)
'2'
>>> "{:0.0f}".format(1.53)
'2'
>>> "{:0.0f}".format(1.500)
'2'
>>> "{:0.0f}".format(1.33)
'1'
>>> "{:0.0f}".format(0.501)
'1'
>>> "{:0.0f}".format(0.5)
'0'
>>> "{:0.0f}".format(0.1)
'0'
>>> "{:0.0f}".format(0.001)
'0'
5

Đầu ra

Python 0

Python F-String

Định dạng chuỗi Python

>>> "{:0.0f}".format(1.999)
'2'
>>> "{:0.0f}".format(1.53)
'2'
>>> "{:0.0f}".format(1.500)
'2'
>>> "{:0.0f}".format(1.33)
'1'
>>> "{:0.0f}".format(0.501)
'1'
>>> "{:0.0f}".format(0.5)
'0'
>>> "{:0.0f}".format(0.1)
'0'
>>> "{:0.0f}".format(0.001)
'0'
8

Hãy để lấy một ví dụ.

179.50

Đầu ra

Để định dạng giá trị phao lên đến hai vị trí thập phân, hãy sử dụng %.2f.

Để định dạng tối đa ba vị trí thập phân, hãy sử dụng & nbsp;%3f.Bạn có thể thấy rằng khi chúng ta chỉ in hai vị trí thập phân, nó sẽ tự động làm tròn đến số nguyên gần nhất. Tuy nhiên, in một số lên đến ba vị trí thập phân không đi vòng đến số nguyên gần nhất. Các bản in 0,496 vì chúng tôi muốn có giá trị nổi lên đến ba chữ số thập phân.Hãy để lấy một ví dụ.Đầu ra
3.1415926 Để định dạng giá trị phao lên đến hai vị trí thập phân, hãy sử dụng %.2f.3.14 Để định dạng tối đa ba vị trí thập phân, hãy sử dụng & nbsp;%3f.
3.1415926 {:+. 2f}+3.14 Định dạng nổi 2 vị trí thập phân với dấu hiệu
-1 {:+. 2f}-1.00 Định dạng nổi 2 vị trí thập phân với dấu hiệu
2.71828 {: .0f}3 Định dạng nổi không có vị trí thập phân
4 {: 0> 2d}04 Số pad với số không (đệm trái, chiều rộng 2)
4 {:x4xxxSố pad với X X (Đệm phải, chiều rộng 4)
10 {:x10xxSố pad với X X (Đệm phải, chiều rộng 4)
1000000 10xx1,000,000 {:,}
0.35 Định dạng số với dấu phân cách dấu phẩy{: .2%}35,00%
1000000000 Tỷ lệ phần trăm định dạng1.00e+09 {: .2e}
11 Ký hiệu số mũ{: 11d}& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 11
11 Được liên kết bên phải (mặc định, chiều rộng 10)11 {:
11 Được liên kết bên trái (chiều rộng 10){:^11d}& nbsp; & nbsp; & nbsp; & nbsp; 11

Trung tâm căn chỉnh (chiều rộng 10)

Sự kết luận

Hầu hết các số trong Python không thể được biểu diễn chính xác trong phao. Nếu bạn cần làm tròn số vì đó là những gì mà công thức hoặc thuật toán toán học của bạn yêu cầu, thì bạn nên sử dụng phương thức vòng ().

Nếu bạn muốn giới hạn màn hình ở một độ chính xác nhất định, thì thậm chí không sử dụng vòng và định dạng chuỗi bằng cách sử dụng các chuỗi hoặc f-flings hoặc f-flings hoặc f dựa trên các yêu cầu của bạn.

Bài viết liên quan

Chuỗi định dạng Python

Python 0

Python F-String

Định dạng chuỗi Python

Bạn có thể chuyển đổi phao thành số nguyên trong Python không?

Giá trị phao có thể được chuyển đổi thành giá trị INT không lớn hơn đầu vào bằng cách sử dụng hàm math.floor (), trong khi nó cũng có thể được chuyển đổi thành giá trị INT có số nguyên nhỏ nhất lớn hơn đầu vào sử dụng toán học.Hàm trần ().Mô -đun toán học sẽ được nhập để sử dụng các phương pháp này. floor() function, whereas it can also be converted to an int value which is the smallest integer greater than the input using math. ceil() function. The math module is to be imported in order to use these methods.

Làm cách nào để định dạng một số float trong Python?

Sử dụng str ...
PI = 3.14159265359 ..
my_formatter = "{0: .2f}" Định dạng đến 2 vị trí thập phân ..
đầu ra = my_formatter.Định dạng (PI).
print(output).

%D và %f trong python là gì?

Ví dụ: "In %D" %(3,78) # Điều này sẽ xuất ra 3 num1 = 5 num2 = 10 " %d + %d bằng %d" %(num1, num2, num1 + num2) # Điều này sẽ xuất hiện #5 + 10 bằng 15. %F Formatter được sử dụng để nhập các giá trị float hoặc số có giá trị sau vị trí thập phân.The %f formatter is used to input float values, or numbers with values after the decimal place.

%D %s trong python là gì?

%s hoạt động một trình giữ chỗ cho một chuỗi trong khi %D hoạt động như một trình giữ chỗ cho một số.Các giá trị liên quan của chúng được truyền qua thông qua một tuple bằng toán tử %.. Their associated values are passed in via a tuple using the % operator.