Python

[Python] 파이썬 소수점 반올림, 돈 표기 방법 : 천단위 콤마(쉼표) 찍기( 천단위 구분 기호 추가), 숫자 콤마 제거

숫자 사이에 콤마를 찍을때 1000단위 마다 콤마를 찍으려면 format 함수를 사용합니다. 날코딩이 하고 싶으시다면 말리지않을게요 ㅎㅎ 

 

format(값, “형식규칙”) 또는 “{형식규칙}”.format(값) 의 방법으로 코딩합니다.

 

[방법1]”형식규칙”에 ‘,d’를 사용하는 경우 정수형 타입 숫자만 사용 가능합니다. float 타입의 자료형을 대입하는 경우 오류가 발생하니 주의하세요.

a = 12345678910
bb = format(a, ',d')
print(bb)

#실행결과
12,345,678,910

 

자료형 타입을 정하지 않으면 정수형이든 실수형(float 타입)이든 모두 적용가능합니다.

a = 12345678910
aa = 1000000.406234

print(format(a, ","))
print(format(aa, ","))


#실행결과
12,345,678,910
1,000,000.406234

 

실수형(float) 규칙을 적용하는 경우 소수점 아래 5자리까지 표기합니다. 소수점 자리의 값이 있든 없든 무조건 5자리로 고정됩니다.

a = 12345678910
aa = 1000000.408

bb = format(a, ',f')
print(bb)

bb = format(aa, ',f')
print(bb)


#실행결과
12,345,678,910.000000
1,000,000.408000

 

[방법2] “{형식규칙}”.format(값)

a = 12345678910
aa = 1000000.406234


b = '{0:,}'.format(a)
print(b)
 
c = '{0:,}'.format(aa)
print(c)


#실행결과
12,345,678,910
1,000,000.406234

 

■소수점자리 표기 하는 방법 ( f 자릿수 사용법)

소수점 첫째자리까지 표기 하는 방법 : 소수점 둘째자리에서 반올림

a = 12345678910
aa = 1000000.406234

c = "{:0,.1f}".format(a)
print(c)

cc = "{:0,.1f}".format(aa)
print(cc)


#실행결과
12,345,678,910.0
1,000,000.4

 

소수점 둘째자리까지 표기 하는 방법: 소수점 셋째자리에서 반올림

a = 12345678910
aa = 1000000.406234

c = "{:0,.2f}".format(a)
print(c)

cc = "{:0,.2f}".format(aa)
print(cc)


#실행결과
12,345,678,910.00
1,000,000.41

 

소수점 셋째자리까지 표기 하는 방법: 소수점 넷째자리에서 반올림

a = 12345678910
aa = 1000000.406534

c = "{:0,.3f}".format(a)
print(c)

cc = "{:0,.3f}".format(aa)
print(cc)


#실행결과
C:UsersilikeAppDataLocalProgramsPythonPython39python.exe C:/python/Workspace/main.py
12,345,678,910.000
1,000,000.407

 

 

 

■소수점 절삭하는 방법 : math함수를 사용 

math.ceil()함수는 소수점 값이 존재하면 무조건 반올림 처리합니다.

>>> import math
>>>
>>> math.ceil(35.593)
36
>>> math.ceil(35.193)
36
>>> math.ceil(35.011)
36
>>> math.ceil(35)
35

math.floor()함수와 math.trunc()는 소수점 자리는 무조건 절삭합니다.

>>> import math
>>>
>>> math.floor(30.1666)
30
>>> math.floor(30.4666)
30
>>> math.floor(30.7666)
30
>>>
>>> math.trunc(30.1111)
30
>>> math.trunc(30.2111)
30
>>> math.trunc(30.6111)
30
>>> math.trunc(30.0001)
30

 

■파이썬(Python) 문자열에서 콤마(쉼표)를 제거하는 방법

replace 함수를 사용하세요. 특정문자를 제거할 때 유용합니다.

a = "10,200,400"
b = a.replace(',', '')
print(b)


#실행결과
C:UsersilikeAppDataLocalProgramsPythonPython39python.exe C:/python/Workspace/main.py
10200400

 

■ 실수를 정수로 반올림하는 방법

round()함수를 사용하면 쉽게 가능합니다.

print("5.4 반올림 결과 : " + str(round(5.4)))
print("3.45523 반올림 결과 : " + str(round(3.45523)))
print("3.555 반올림 결과 : " + str(round(3.555)))

print("3.54536 소숫점 둘째자리에서 반올림 결과 : " + str(round(3.54536, 2)))
print("3.54536 소숫점 셋째자리에서 반올림 결과 : " + str(round(3.54536, 3)))

[실행결과]

5.4 반올림 결과 : 5
3.45523 반올림 결과 : 3
3.555 반올림 결과 : 4
3.54536 소숫점 둘째자리에서 반올림 결과 : 3.55
3.54536 소숫점 셋째자리에서 반올림 결과 : 3.545

 

문자와 숫자를 조합하여 출력하려고 할 경우 TypeError가 발생됨으로 정수를 문자열로 형변환하기 위해 str()함수를 사용하여 처리합니다.

print("3.54536 소숫점 셋째자리에서 반올림 결과 : " + round(3.54536, 3))

 

[오류 내용]

Traceback (most recent call last):
  File "C:pythonWorkspacemain.py", line 6, in <module>
    print("3.54536 소숫점 셋째자리에서 반올림 결과 : " + round(3.54536, 3))
TypeError: can only concatenate str (not "float") to str

 

[REFERENCE]

docs.python.org/release/3.1.3/whatsnew/3.1.html#pep-378-format-specifier-for-thousands-separator

stackoverflow.com/questions/5513615/add-decimal-mark-thousands-separators-to-a-number

 

[파이썬 더 알아보기]

[Python] 파이썬 파일 생성(txt) 및 읽기 쓰기(I/O) 예제 : open(), close(), write(), with(), readline(), read(), readlines()

[Python] 파이썬 난수 발생(random) 예제 총정리 : randit(), randrange(), uniform(), shuffle(), choice(), choices(), simple()

[Python] 파이썬에서 웹브라우저(url) 호출하는 방법 : webbrower, selenium

[Python] 파이썬 클래스(class) 와 생성자(__init__) 사용방법 및 예제 총정리

[Python] 파이썬 list, tuple, dictionary,set 예제 및 총정리

[Python] 파이썬 문자열 함수 사용 예제 및 총정리 : split,join,replace,rstrip,lstrip,lower,upper,index,count,len

[Python] 파이썬 기본(기초) 문법 : 예제 및 총정리

 

#python float to int, #파이썬 정수 실수 변환, #파이썬 float소수점, #파이썬 정수 소수 분리, #파이썬 정수 실수 판별, #파이썬 실수 표현, #파이썬 타입변환, #float을 int로 변환

 

Leave a Reply

error: Content is protected !!