如何从perl中解析字符串中的负数?我有这段代码:
print 3 - int("-2");
它给了我5
,但我需要3
。我该怎么做?
答案 0 :(得分:8)
Perl会根据需要自动在字符串和数字之间进行转换;除非您确实想要将浮点数(无论是存储为数字还是存储在字符串中)转换为整数,否则不需要int()操作。所以你可以这样做:
my $string = "-2";
print 3 - $string;
得到5(因为3减负2 5)。
答案 1 :(得分:5)
嗯,3 - ( - 2)确实是5.我不确定你想要实现什么,但如果你想过滤掉负值,为什么不做这样的事情:
$i = int("-2")
$i = ($i < 0 ? 0 : $i);
这会将您的负值变为0,但让正数通过。
答案 2 :(得分:1)
似乎正确解析它。
3 - ( - 2)是 5
如果错误地将-2解析为2那么它将输出3 - 2 = 1
无论你如何从3中加/减2,你都不会得到3.
答案 3 :(得分:1)
您可能正在考虑使用其他函数而不是'int'。
尝试:
use List::Util qw 'max';
...
print 3 - max("-2", 0);
如果你想获得3作为结果。
此致
RBO