Perl浮点数使用混乱

时间:2011-08-08 20:56:04

标签: 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";
}

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

为什么$i0一起使用时被视为e

2 个答案:

答案 0 :(得分:12)

我认为你只是忘了包含乘法运算符*

$i * 1e-01

字符串$ie-01将被解释为$ie - 01,它是一个单元化变量(即零)减去一个会给你-1的变量。 (您可以使用e - 表示法仅使用常数而不是变量。)

答案 1 :(得分:6)

你的第一个错误不包括:

use strict;
use warnings;

这会告诉你变量$ie没有被声明。

没有合理的方法让${i}e-01工作;你必须eval它,这是不合理的。编写它的标准方法是:

$b = $i * 0.1;