Question Impossible de convertir la valeur"" en type .

Plus d'informations
il y a 10 ans 2 mois #21273 par Philippe

[code:1]$S=[Math]::Round(3980024 / 1024,2)[/code:1]
Renvoi un entier, plus de pb...

j'ai toujour 160 pour l'espace ?!!!
PS : ooops je me suis trompé dans la recopie. il y plus de soucis
mais le \"n0\" n'est pas plus simple ??
“{0:n0}” -f (3580024 / 1KB )
et puis on perd la mise en forme pour l'affichage !!!
ce qui est la source du problème !!! les auteurs du livre n'ont rien vu !!!

mais sinon pour en finir avec ce problème, il y deux solution :

la mienne un peu violente (je calcul à partir des valeur d'orgine, ce qui alourdi le code)
remplace cette ligne :
[code:1] $objCluster.MemUsagePct = “{0:«»p2}” -f ($objCluster.AssignedMemGB / $objCluster.TotalMemGB«»)
[/code:1]

par cette ligne :
[code:1] $objCluster.MemUsagePct = “{0:«»p2}” -f ((($vm | Where {$_.PowerState -eq “PoweredOn”} | Measure-Object -Property MemoryMB -Sum).Sum / 1024) / ($cluster.ExtensionData.Summary.TotalMemory / 1GB«»))
[/code:1]

ou celle de Laurent (qui remplace l'espace au char\"160\" par rien)
remplace la même ligne par celle là :
[code:1] $objCluster.MemUsagePct = “{0:«»p2}” -f ($objCluster.AssignedMemGB.Replace(\"$([char]160)\", '') / $objCluster.TotalMemGB.Replace(\"$([char]160)\", ''))
[/code:1]

Message édité par: 6ratgus, à: 14/01/16 16:55<br><br>Message édité par: 6ratgus, à: 14/01/16 16:58

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 2 mois #21274 par Laurent Dardenne
6ratgus écrit:

j'ai toujours 160 pour l'espace ?!!!

Refait un test, Round() renvoi un Double:
[code:1]
[Math]::Round
#OverloadDefinitions
#
#static double Round(double a)[/code:1]
Il ne peut donc y avoir d'espace, même si la variable $S est typée en [String]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 2 mois #21275 par Philippe
tu tape trop vite au clavier maintenant !!
j'ai corrigé mon post entre temps !! ;)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 2 mois #21276 par serval13
super, la derniere solution fonctionne


effectivement j'avais essayer de jouer avec les cultureinfo sans resultats

mais la cela fonctionne




$objCluster.MemUsagePct = “{0 : p2}” -f ($objCluster.AssignedMemGB.Replace(\&quot;$([char]160)\&quot;, '') / $objCluster.TotalMemGB.Replace(\&quot;$([char]160)\&quot;, ''))<br><br>Message édité par: serval13, à: 14/01/16 17:18
Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 2 mois #21277 par serval13
cela doit etre ca :) nicekel cela fonctionne je trouve bien mon pourcentage a 73.96%



merci pour votre coup de main cela été a s'arracher les cheveux

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 2 mois #21279 par Laurent Dardenne
serval13 écrit:

merci pour votre coup de main cela été a s'arracher les cheveux

C'est vrai que Powershell provoque qq fois des problèmes capillaires.

Pour la solution, le code autour de [String]::Format est dépendant de la culture :
[code:1]
#http://keithhill.spaces.live.com/Blog/cns!5A8D2641E0963A97!7132.entry
function Using-Culture ([System.Globalization.CultureInfo]$culture =(throw \&quot;USAGE: Using-Culture -Culture culture -Script {scriptblock}\&quot;«»),
[ScriptBlock]$script=(throw \&quot;USAGE: Using-Culture -Culture culture -Script {scriptblock}\&quot;«»))
{
$OldCulture = [System.Threading.Thread]::CurrentThread.CurrentCulture
$OldUICulture = [System.Threading.Thread]::CurrentThread.CurrentUICulture
try {
[System.Threading.Thread]::CurrentThread.CurrentCulture = $culture
[System.Threading.Thread]::CurrentThread.CurrentUICulture = $culture
Invoke-Command $script
}
finally {
[System.Threading.Thread]::CurrentThread.CurrentCulture = $OldCulture
[System.Threading.Thread]::CurrentThread.CurrentUICulture = $OldUICulture
}
}

$code={
$s=\&quot;{0:n2}\&quot; -f (3980024 / 1024)
[byte[]][char[]]$s
}

Using-Culture 'Fr-Fr' $Code
#160
Using-Culture 'EN-US' $Code
#44
[/code:1]
Des entiers je vous dis ;)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.104 secondes
Propulsé par Kunena