Perl浮点数使用混乱

jb0*_*b04 2 perl

在perl中使用标量值时,我无法实现所需的结果.需要你的帮助来确定我哪里出错了..

假设我想循环9次并打印0.1到0.9

我声明变量$i并在for循环和循环内使用它.

for($i = 1; $i < 10; $i++) 
{
    $b = $ie-01; # (This where I go wrong, I am not sure If I am following correct
                 # syntax here, Because I see -1 getting printed instead of $i value
                 # which is incremented on each loop)
    print "The value now is: $b\n";
}
Run Code Online (Sandbox Code Playgroud)

我知道获得所需结果的不同方法,但我想知道如何使用指数来获得所需的输出.....

为什么$i被视为0e?同时使用?

How*_*ard 12

我想你只是忘了包含乘法运算符*:

$i * 1e-01
Run Code Online (Sandbox Code Playgroud)

该字符串$ie-01将被解释为$ie - 01一个unititialized变量(即零)减去一个将给你-1.(您只能使用e常数而不是变量使用-notation.)

  • 如果你在脚本的顶部添加了两行`use strict;``use warnings;`,Perl就会警告你`$ ie`是未初始化的. (3认同)

Jon*_*ler 6

你的第一个错误不包括:

use strict;
use warnings;
Run Code Online (Sandbox Code Playgroud)

这会告诉你有关$ie未声明的变量.

没有合理的${i}e-01工作方式; 你会不得不这样eval做,这是不合理的.编写它的标准方法是:

$b = $i * 0.1;
Run Code Online (Sandbox Code Playgroud)