|
|
1
217
我就用……
…很简单,而且很有效 另一个选项是正则表达式:
|
|
2
138
检查浮动的python方法:
别被藏在游船里的妖精咬了!进行单元测试!什么是浮动的,不是浮动的,可能会让你吃惊:
|
|
|
3
11
哪个会回来
将返回
将返回
|
|
|
4
5
如果您关心性能(我并不是建议您应该这样做),那么基于try的方法显然是赢家(与基于分区的方法或regexp方法相比),只要您不期望有很多无效字符串,在这种情况下,它可能会变慢(可能是由于异常处理的成本)。 再说一次,我不是建议你关心性能,只是给你数据,以防你每秒做100亿次,或者其他什么。另外,基于分区的代码没有处理至少一个有效的字符串。 $ ./floatstr.py
F..
partition sad: 3.1102449894
partition happy: 2.09208488464
..
re sad: 7.76906108856
re happy: 7.09421992302
..
try sad: 12.1525540352
try happy: 1.44165301323
.
======================================================================
FAIL: test_partition (__main__.ConvertTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "./floatstr.py", line 48, in test_partition
self.failUnless(is_float_partition("20e2"))
AssertionError
----------------------------------------------------------------------
Ran 8 tests in 33.670s
FAILED (failures=1)
这是代码(python 2.6,regexp取自john gietzen的 answer ):
|
|
|
5
5
DR :
还有另一种方法可以通过第三方模块调用
快速数字
(公开,我是作者);它提供一个函数
isfloat
. 我以Jacob Gabrielson在
this answer
,但增加了
在我的机器上,输出为:
正如您所看到的,regex实际上并不像最初看起来那么糟糕,如果您真正需要速度,那么
|
|
|
6
4
为了多样化,这里还有另一种方法。
编辑:我确信它不会容纳所有的浮动情况,尤其是当有指数的时候。为了解决这个问题,它看起来是这样的。这将返回true only val是一个float,对于int则返回false,但其性能可能不如regex。
|
|
|
7
2
此regex将检查科学的浮点数:
但是,我相信您最好的选择是在一次尝试中使用解析器。 |
|
|
8
2
如果您不需要担心数字的科学表达式或其他表达式,并且只使用可能是带句点或不带句点的数字的字符串: 功能
拉姆达版本
例子
这样就不会意外地将int转换成float。 |
|
|
9
1
我使用了前面提到的函数,但很快我注意到字符串“nan”、“inf”和它的变化被认为是数字。因此,我建议您改进该函数的版本,它将在这些类型的输入上返回false,并且不会失败“1E3”变体:
|
|
|
10
1
尝试转换为float。如果有错误,请打印ValueError异常。
输出:
|
|
|
11
0
我在寻找一些类似的代码,但看起来使用Try/Excepts是最好的方法。 这是我使用的代码。如果输入无效,它包含一个重试函数。我需要检查输入是否大于0,如果大于0,则将其转换为浮点。
|
|
12
0
似乎很简单。 处理以字符串、int或float形式存储的值 |
|
13
0
函数的简化版本
|
|
|
Olivier Lasne · 将i128转换为f64的正确方法是什么 1 年前 |
|
|
Floris · 为什么cpp编译器在类型声明不正确时要转换为int? 1 年前 |
|
|
Bhargav Patil · 运算符的大小并尝试打印数组 2 年前 |
|
|
Vedant Yadav · c中用户定义类中的类型转换++ 2 年前 |
|
|
user25265096 · 从任何可用类型转换接口参数 2 年前 |
|
|
zahl · javascript中的签名int到签名char 2 年前 |