如何在perl中打印十进制变量

Joh*_*ohn 0 perl

下面是我的十进制变量:

my $variable = 1.0;
Run Code Online (Sandbox Code Playgroud)

当我尝试打印变量时

print "$variable\n";
Run Code Online (Sandbox Code Playgroud)

我得到了1.0.

但是,如果我将相同的内容传递给函数:

&printvariable("$variable\n");

sub  printvariable()
{
    print "My variable is: @_";
}
Run Code Online (Sandbox Code Playgroud)

现在,它正在打印, My variable is: 1

为什么这个十进制值在函数中四​​舍五入?有没有办法在函数中打印值?

ike*_*ami 5

你说的不是真的.

$ perl -e'my $variable=1.0; print "$variable\n";'
1
Run Code Online (Sandbox Code Playgroud)

$variable=1.0;,$variable=1;并且$variable= 4-3;所有指定的号码一个$variable,和内插stringifies 一个1.它无法知道产生价值的代码是什么,1.0或者4-3也不应该是重要的.

如果要显示小数点,请将三个字符的字符串分配1.0$variable

$ perl -e'my $variable = "1.0"; print "$variable\n";'
1.0
Run Code Online (Sandbox Code Playgroud)

或者将数字转换为该字符串.

$ perl -e'my $variable = 1.0; printf "%.1f\n", $variable;'
1.0
Run Code Online (Sandbox Code Playgroud)