perl6函数层对数字和字符串的作用不同吗?

lis*_*tor 6 numeric floor perl6

快速提问:

-1.9.floor给您-1,而“ -1.9” .floor给您-2。应该是这样吗?对我来说似乎有点矛盾。

> say -1.9.floor
-1
> say "-1.9".floor
-2
Run Code Online (Sandbox Code Playgroud)

文档说“将其向下舍入到最接近的整数”。两者都应该为-2吗?

谢谢!!!

Val*_*kas 10

似乎是某些运算符的优先级。将数字设为变量,并在变量上使用下限即可。

my $i = -1.9;
say $i.floor; #-2 
Run Code Online (Sandbox Code Playgroud)

在您的示例中,它使:.9.floor ==> 0,然后是-1.0 ==> -1

  • 谢谢Valle Lukas !!!,(-1.9).floor给你-2。谢谢。看起来-1.9.floor实际上是-(1.9.floor),并且负号的优先级低于点。谢谢! (2认同)