【发布时间】:2017-07-31 22:09:13
【问题描述】:
我有一个包含这些浮点数的列表:35.1、35.2、35.10、...
当我将这个浮点数列表转换为另一个字符串列表时,35.10 将是 35.1。
这是我的例子:
a = [35.1,35.2,35.3,35.10,35.2,35.3]
str_a = [format(flt) for flt in a]
print str_a
['35.1', '35.2', '35.3','35.1', '35.2', '35.3']
我该如何解决这个问题?在我的工作中,35.1 和 35.10 这两个数字是不同的
【问题讨论】:
-
以及 35.1 和 35.10 有何不同?
-
当您创建
a时,35.10将立即转换为35.1。所以在创建a时必须使用字符串 -
如果这些代表浮点数,那么 35.10 与 35.1 相同 与 35.100000 相同。如果它们代表其他东西(如major.minor 版本或书籍chapter.verse),那么您可能希望按此顺序对35.1、35.2、... 35.9、35.10、35.11 进行排序。
-
公平地说,它们可能会转换为 35.0999999...5 或 35.1000000000.....5
-
感谢您的回复,这些浮点数代表我网络中数据包的 ID,因此 35.1 和 35.10 是节点 35 生成的不同数据包。所以我的列表 a = [35.1,35.2,35.3 ,35.10,35.2,35.3] 不同目的地收到的所有数据包,所以我需要知道收到的数据包总数如何,通常列表 a 的结果为 4,因为数据包 35.2 和 35.3 被接收了两次,所以我没有数他们。我的主要问题结果给出了 3,因为它认为 35.10 是相同的数据包 35.1。请问有办法解决这个问题吗?
标签: python python-2.7