0
votes

Comment convertir une chaîne en entier dans PowerShell?

J'essaie de créer une chaîne à partir d'une variable dans PowerShell. Je veux afficher les nombres sous forme de chaînes et non de nombres entiers.

J'ai essayé de mettre [str] avant ma variable, comme pour string to integer ([int]), mais cela m'a donné une erreur. J'ai également recherché mon problème, mais personne n'a posé de question comme celle-ci.

Le code en question est la ligne "$ jstr".

for ($j = 0; $j -lt 1000; $j++)
    {
        $jstr = [str]$j
        $dot = "."
        $num = $jstr + $dot
        Write-Host $num, Get-Random -SetSeed $j
    }

I veulent que la sortie soit quelque chose comme "1. Nombre aléatoire ", avec 1 étant le numéro de départ et Nombre aléatoire étant le nombre mappé à cette graine,


3 commentaires

l'accélérateur de type pour les chaînes est ... [string] , pas [str] . [ sourire ]


Pas sûr à 100% de ce que vous demandez. Le titre est "Comment convertir une chaîne en entier dans PowerShell?" Mais, dans votre message, vous déclarez: «Je veux afficher les nombres sous forme de chaînes et non sous forme d'entiers». Voulez-vous des chaînes sous forme d'entiers ou des entiers sous forme de chaînes?


Merci Lee, j'ai résolu mon problème.


3 Réponses :


0
votes

Quelques façons ...

Si vous avez un nombre exprimé sous forme de chaîne, vous pouvez appeler la méthode toInt32 () de string : p >

 entrez la description de l'image ici

Vous pouvez l'attribuer à une variable avec l'identifiant de type:

 entrez la description de l'image ici

Cependant, cela fonctionne UNIQUEMENT si la chaîne est composée de TOUS les nombres (pas de caractères non numériques / non hexadécimaux).

Si vous voulez aller dans l'autre sens ( exprimer un entier sous forme de chaîne), utilisez la méthode toString () :

$integer.toString()


0 commentaires

0
votes

Comme ça?

for ($j = 0; $j -lt 6; $j++)                                                                                          
{
  $rand = Get-Random -SetSeed $j
  "$j.$rand"
}

0.1866861594
1.42389573
2.365335408
3.688215708
4.1011161543
5.1334173171


0 commentaires

0
votes

voici une façon d'obtenir une liste avec la graine à gauche, un point, puis le nombre aléatoire. il utilise l'opérateur de format de chaîne -f pour placer les nombres et pour aligner les nombres dans l'espace alloué. [ grin ]

 0.  607
 1.  602
 2.  997
 3.  636
 4.  143
 5.  839
 6.    6
 7.  404
 8.  536
 9.  394
10.  124

sortie ...

$Start = 0
$End = 10
$SLength = ([string]$Count).Length

$RMin = 0
$RMax = 1e3
$RLength = ([string]$RMax).Length

foreach ($Number in $Start..$End)
    {
    "{0,$SLength}. {1,$RLength}" -f $Number, (Get-Random -SetSeed $Number -InputObject ($RMin..$RMax))
    }


0 commentaires