Путаница с использованием числа с плавающей запятой в Perl - PullRequest
2 голосов
/ 09 августа 2011

При использовании скалярных значений в Perl я не могу достичь желаемых результатов. Нужна ваша помощь в выяснении, где я иду не так ..

Скажем, я хочу зациклить 9 раз и напечатать от 0,1 до 0,9

Я объявил переменную $i и использовал ее как внутри цикла, так и внутри цикла.

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 трактуется как 0 при использовании вместе с e?

Ответы [ 2 ]

12 голосов
/ 09 августа 2011

Я думаю, вы только забыли включить оператор умножения *:

$i * 1e-01

Строка $ie-01 будет интерпретироваться как $ie - 01, которая является унитизированной переменной (т. Е. Ноль), минус единица, которая даст вам -1. (Вы можете использовать примечание e только с постоянными числами, но не с переменными.)

6 голосов
/ 09 августа 2011

Ваша первая ошибка не включала:

use strict;
use warnings;

Это могло бы рассказать вам о том, что переменная $ie не объявлена.

Нет разумного способа сделать ${i}e-01Работа;Вы должны были бы eval это, что не разумно.Стандартный способ написать это будет:

$b = $i * 0.1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...