有限的浮点数小数点不四舍五入
limited float decimal point without rounding the number
我想将数字转换为带小数点后 3 位的浮点数,但我希望它不四舍五入。
例如:
a = 12.341661
print("%.3f" % a)
这个代码return这个号码:
12.342
但是我需要原始号码,我需要这个:
12.341
I write a code that receive a number form user and convert it to a float number.
I have no idea that what is the number entered with user.
尝试 str 和切片
a = 12.341661
b = str(int(a))
c = str(a - int(a))[1:5]
d = b + c
print(d)
我的第一个想法是将 print("%.3f" % a)
更改为 print("%.3f" % (a-0.0005))
但它并不完全有效:虽然它输出你想要的 a=12.341661,但如果 a=12.341 它输出 12.340,这是显然不对。
相反,我建议使用 int()
:
明确地做地板
a = 12.341661
b = int(a*1000)/1000.
print(b)
这会输出你想要的:
12.341
要在输入较少的情况下得到 3 位小数,您可以格式化输出:
a = 3.1
b = int(a*1000)/1000.
print("%.3f" % b)
输出:
3.100
我想将数字转换为带小数点后 3 位的浮点数,但我希望它不四舍五入。 例如:
a = 12.341661
print("%.3f" % a)
这个代码return这个号码:
12.342
但是我需要原始号码,我需要这个:
12.341
I write a code that receive a number form user and convert it to a float number. I have no idea that what is the number entered with user.
尝试 str 和切片
a = 12.341661
b = str(int(a))
c = str(a - int(a))[1:5]
d = b + c
print(d)
我的第一个想法是将 print("%.3f" % a)
更改为 print("%.3f" % (a-0.0005))
但它并不完全有效:虽然它输出你想要的 a=12.341661,但如果 a=12.341 它输出 12.340,这是显然不对。
相反,我建议使用 int()
:
a = 12.341661
b = int(a*1000)/1000.
print(b)
这会输出你想要的:
12.341
要在输入较少的情况下得到 3 位小数,您可以格式化输出:
a = 3.1
b = int(a*1000)/1000.
print("%.3f" % b)
输出:
3.100