2015-10-02 38 views
-2

任何人都可以在python中帮助浮点值。 我想从CPP访问值。从CPP我得到的价值说20.251。 但在python中,它显示为20.5099876这样的东西。 我想显示价值,因为它是来frm cpp。 谢谢。在python中显示浮点值

我已经试过

i = c_ float 
GetVal(Voltage, byref(i)) 
Print("Value is: " i.value) 
+0

阅读教程[浮点算术:问题和局限性](https://docs.python.org/3/tutorial/floatingpoint.html) – jfs

+0

我已阅读that..tried also..but问题还没有解决了.. –

+2

本教程实际上有代码示例'format(math.pi,'.2f')',它显示了如何限制点之后的数字位数。 – jfs

回答

1

在这里你去

a = 20.25099876 result = format(a, '.3f') print result

+0

谢谢你的帮助......但我想价值被显示,因为它是..在你的情况下它是一个= 20.25099876。 我想要它,因为它没有小数点的限制。 –

+0

@ Neha.m:如果你阅读本教程,那么你应该明白,2.251(如果你在Python源代码中输入的话)在计算机上表示为'20.251000000000001222133505507372319698333740234375'(合理假设) – jfs

+0

谢谢你帮助先生。我知道这已经打印只有dis只..我只是问是否有任何方式来获得价值观,因为它是.. –

1

小数和花车在小数有十(0-9)的基本意义不同而浮动有两个(0,1)的基数。有两种舍入方法(不截断浮点数,它只是在指定的小数点处关闭数字)。

x = 20.25099876 
s = format(x, '.2f') 
print(s) 

的0.2表示浮动后打印

四舍五入符号可以放置在冒号之后&内部格式字符串的括号来打印

x = 20.25099876 
'rounded : {:.2f}'.format(x) 
+0

Thanku这么多fr d的帮助.. –

+0

Thanku太多fr d help..can它是可能的打印时没有定义任何限制。 –

+0

没有定义参数? (例如{.2f})请记住,数学函数乘积的浮点数并不总是准确的,因为它们的二进制基数保持小数点,并且未经编辑可能会扭曲数字的实际值。然而,如果你没有定义任何参数,你只需要得到你想要的很长的十进制数。另外,在第二个选项中,你可以定义一个开始点和结束点来进一步改变浮点数。 –

0

单程号的数目没有舍入的数字是 num = 20.25099876 num = num - (num%0.0001) print num
它将打印20.2509

如果要按原样打印该值,如a = 20.25099876 使其成为字符串。 str(a)并打印出来。

+0

一般来说,四舍五入浮点数将不起作用。阅读有关表示错误。 – jfs

0

使用“c_double”而不是“c_float”从cpp获取确切值。