如何从 perl 中的字符串中解析负数?我有这段代码:
print 3 - int("-2");
它给了我5
,但我需要3
。我该怎么做?
如何从 perl 中的字符串中解析负数?我有这段代码:
print 3 - int("-2");
它给了我5
,但我需要3
。我该怎么做?
Perl 会根据需要自动在字符串和数字之间进行转换;不需要 int() 操作,除非您真的想将浮点数(无论是存储为数字还是字符串)转换为整数。所以你可以这样做:
my $string = "-2";
print 3 - $string;
并得到 5(因为 3 减去负 2是5)。
嗯,3 - (-2) 真的是 5。我不太确定你想要实现什么,但如果你想过滤掉负值,为什么不这样做:
$i = int("-2")
$i = ($i < 0 ? 0 : $i);
这会将您的负值变为 0,但让正数通过。
You are probably thinking of some other function instead of 'int'.
try:
use List::Util qw 'max';
...
print 3 - max("-2", 0);
if you want to get 3 as result.
Regards
rbo
它似乎正确解析它。
3 - (-2)是5。
如果它错误地将 -2 解析为 2,那么它将输出 3 - 2 = 1。
无论你如何从 3 中添加/减去 2,你永远不会得到 3。