Perl浮点数用法混乱

Perl浮点数用法混乱,perl,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

在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";
}
($i=1;$i<10;$i++)的

{
$b=$ie-01;#(这是我出错的地方,我不确定我的跟踪是否正确
#这里的语法,因为我看到打印的是-1而不是$I值
#在每个循环中递增)
打印“当前值为:$b\n”;
}
我知道获得期望结果的不同方法,但我想知道如何使用指数来获得期望的输出


当与
e
一起使用时,
$i
为什么被视为
0

我想您只是忘记了包含乘法运算符
*

$i * 1e-01

字符串
$ie-01
将被解释为
$ie-01
,它是一个单位化变量(即零)减去一,将为您提供
-1
。(您只能将
e
-符号用于常量,而不能用于变量。)

您的第一个错误不包括:

use strict;
use warnings;
这会告诉您没有声明变量
$ie

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

$b = $i * 0.1;

绝对正确。。我尝试了乘法运算符,它很有效!!!谢谢你,霍华德,还有一个问题!!为什么我在包含一个()…比如$I(e-01)时会出错,因为我知道我在那里做错了什么,但我试图引入大括号来表示它的不同,但我在这方面收到了错误line@JeyBela乘法运算符
*
在perl中不是可选的。您还必须编写
$i*(1e-01)
。正如我在回答
e-01
中所提到的,它只适用于固定前缀。如果您添加了两行
则使用strict
使用警告$ie
未初始化。除非必须使用C样式,否则不应在Perl中对循环使用C样式。试着用
替换我的$i(1..9){
。另外,你应该把霍华德的答案标记为正确答案。