5
Sto provando a convertire stringhe come 5.7303333333e+02
in un tipo decimale. Ho provato a utilizzare [decimal]::TryParse
ma il reso è falso. Esiste un metodo simile a [datetime]::parseexact
o un modo pulito per convertire queste stringhe? O dovrò analizzare il e+02
e fare quella matematica separatamente?Come posso convertire una stringa come 5.7303333333e + 02 in un tipo decimale in PowerShell?
+1 funziona. Ma mi chiedo quale meccanismo di casting sia usato in background, se non è '[decimal] :: TryParse (" 5,7303333333e + 02 ", [ref] $ dec)'. Il problema è la notazione scientifica non supportata perché '[decimal] :: TryParse (" 5.7303333333 ", [ref] $ dec)' funziona ... Vedi qui: http://msdn.microsoft.com/en-us /library/9zbda557.aspx –
Sono sorpreso che abbia funzionato, ma '[decimal] :: TryParse' no. Molto più pulito rispetto all'utilizzo TryParse comunque. –
@davor: Usando 'Trace-Command TypeConversion {[decimal] '5.7303333333e + 02'} -PSHost', puoi vedere che PowerShell cattura l'eccezione di formato e riprova la conversione analizzando con '[double]' e poi convertendo in '[decimale]'. –