如何打印最多 n 个十进制值的十进制数,如果最后忽略 0?
Posted
技术标签:
【中文标题】如何打印最多 n 个十进制值的十进制数,如果最后忽略 0?【英文标题】:How to print a decimal number up to n decimal values neglecting 0's if any at the end? 【发布时间】:2019-07-07 04:54:25 【问题描述】:我正在尝试打印两个数字的值,最多 4 位小数,不包括最后的 0。
a= 0.125
b= 0.256325
print("%.4f" %round(a,4))
print("%.4f" %round(b,4))
这给了我 0.1250 和 0.2563,但我只想要 a 的 0.125 和 b 的 0.2563
我希望:
如果 a 是 0.125、0.1250 或 0.125000,我应该只得到 0.125 作为输出,对于所有其他情况,我可以在 "." 之后得到 4 个非零值
【问题讨论】:
str(round(a, 4))
使用 Python 3.7.3 的结果为 '0.125'(str(round(b, 4))
的结果为 '0.2563')。
C语言能不能得到想要的结果。
【参考方案1】:
尝试normalize
提到的here
import decimal
print(decimal.Decimal('0.1230000').normalize())
0.123
你的例子
a= 0.125
b= 0.256325
print (decimal.Decimal(str.format('%.4f' %a)).normalize())
print (decimal.Decimal(str.format('%.4f' %b)).normalize())
0.125
0.2563
【讨论】:
以上是关于如何打印最多 n 个十进制值的十进制数,如果最后忽略 0?的主要内容,如果未能解决你的问题,请参考以下文章
QSerialPort::write() - 只有签名值? (最多 127 个十进制数)?我需要发送 0xFF (255 dec)