我只想显示小数位 "Truncate floats without rounding"
I want to show only the decimal places "Truncate floats without rounding"
到目前为止,我的代码一直显示到小数点后第二位。
res4 = Decimal('%.2f' % (res4 * 100 / 100))
但我遇到了问题
35.3169 --> 35.32
为什么要提出来?
我想把小数点后第三位的所有东西都扔掉。
如果没有第二个小数位,我想做 0。
帮帮兄弟!!!
我不认为这是我发现的方式。
def truncate_number(num, limit):
int_part, fract_part = str(Decimal(num)).split('.')
return Decimal(f'{int_part}.{fract_part[:limit]}')
[input] truncate_number(35.3169, 2)
[output] 35.31
[input] truncate_number(31.1, 2)
[output] 31.10
[input] truncate_number(31.4, 2)
[output] 31.39
[input] truncate_number(31.5, 2)
[output] 31.5
[input] truncate_number(30.22, 2)
[output] 30.21
发生了什么...
我要仰望少数。
我想扔掉第三个数字。
而如果没有第二个小数位,我想做0。
*************** 我觉得我需要用这个。 ************
res4 = math.floor(res4 * 1000) / 100
res4_2f='%.2f' % (res4 / 10)
[input] 40.41
[output] 40.41
告诉我建议!
您正在从字符串构造 Decimal。您使用的格式说明符会将值四舍五入。例如:
print('%.2f' % 35.3169)
...将发出 35.32
如果你不想舍入数字,你可以像这样用字符串操作来截断浮点数:
def truncate_number(num, limit):
int_part, fract_part = str(float(num)).split('.')
return float(f'{int_part}.{fract_part[:limit]}')
In [9]: truncate_number(35.3169, 2)
Out[9]: 35.31
In [9]: truncate_number(1.1199, 2)
Out[9]: 1.11
In [11]: truncate_number(1.1199, 3)
Out[11]: 1.119
In [11]: truncate_number(-1.1199, 3)
Out[11]: -1.119
请记住,此函数不会将 1
转换为 1.000
:
In [13]: truncate_number(1, 3)
Out[13]: 1.0
到目前为止,我的代码一直显示到小数点后第二位。
res4 = Decimal('%.2f' % (res4 * 100 / 100))
但我遇到了问题
35.3169 --> 35.32
为什么要提出来? 我想把小数点后第三位的所有东西都扔掉。 如果没有第二个小数位,我想做 0。 帮帮兄弟!!!
我不认为这是我发现的方式。
def truncate_number(num, limit):
int_part, fract_part = str(Decimal(num)).split('.')
return Decimal(f'{int_part}.{fract_part[:limit]}')
[input] truncate_number(35.3169, 2)
[output] 35.31
[input] truncate_number(31.1, 2)
[output] 31.10
[input] truncate_number(31.4, 2)
[output] 31.39
[input] truncate_number(31.5, 2)
[output] 31.5
[input] truncate_number(30.22, 2)
[output] 30.21
发生了什么... 我要仰望少数。 我想扔掉第三个数字。 而如果没有第二个小数位,我想做0。
*************** 我觉得我需要用这个。 ************
res4 = math.floor(res4 * 1000) / 100
res4_2f='%.2f' % (res4 / 10)
[input] 40.41
[output] 40.41
告诉我建议!
您正在从字符串构造 Decimal。您使用的格式说明符会将值四舍五入。例如:
print('%.2f' % 35.3169)
...将发出 35.32
如果你不想舍入数字,你可以像这样用字符串操作来截断浮点数:
def truncate_number(num, limit):
int_part, fract_part = str(float(num)).split('.')
return float(f'{int_part}.{fract_part[:limit]}')
In [9]: truncate_number(35.3169, 2)
Out[9]: 35.31
In [9]: truncate_number(1.1199, 2)
Out[9]: 1.11
In [11]: truncate_number(1.1199, 3)
Out[11]: 1.119
In [11]: truncate_number(-1.1199, 3)
Out[11]: -1.119
请记住,此函数不会将 1
转换为 1.000
:
In [13]: truncate_number(1, 3)
Out[13]: 1.0