powershell.ps1
Provjeri svoju kulturnost: [System.Globalization.CultureInfo]::CurrentCulture. Za donje primjere ti treba “hr-HR“, a vjerujem da i ostale Balkanske prčije daju isti rezultat.
Ta pogledajmo koliko razreda osnovne škole su završili programeri Powershella i koliko su markirali matematiku.
Definirajmo varijablu, a možebitno i konstantu:
[float]$Flout = 123456.789012
| Format | Rezultat | Komentar |
$Flout | % ToString "00.00" |
123456,80 | ** |
$Flout | % ToString "##.##" |
123456,8 | |
$Flout | % ToString "000,000,000.00" |
000.123.456,80 | ** |
$Flout | % ToString "###,###,###.##" |
123.456,8 | |
"{0:N0}" -f $Flout |
123.457 | |
"{0:N2}" -f $Flout |
123.456,79 | |
"{0000000000000000:N12}" -f $Flout |
123.456,789062500000 | *** |
$Flout |
123456,8 | ** |
$Flout.ToString("N", $mojaKultura).PadLeft(20) |
: 123.456,79 | **** |
$mojaKultura = [System.Globalization.CultureInfo]::CurrentCulture;
|
123.456,79 | **** |
$Flout | % ToString("0", $mojaKultura) |
123457 | |
$Flout.ToString("0", $mojaKultura) |
123457 | **** |
$Flout.ToString("N", $mojaKultura) |
123.456,79 | **** |
$Flout.ToString("N0", $mojaKultura) |
123.456 | **** |
[int]$Intidzer = $Flout;
|
123457 | |
$Intidzer | % ToString("N", $mojaKultura) |
123.457,00 | ** |
Važne napomene
* Uoči izopačeni prikaz decimalnih zareza/točaka te razdvajatelja tisućica u (gotovo) svim primjerima. Unos podataka je s decimalnom točkom i zarezom za odvajanje tisućica (US-stil), prikaz je obratan (HR-stil). Sve ovisi o regionalnom formatu te dobroj volji Powershella i uvjeren sam da će ti na računalu s amerikanskim postavkama sve ispasti pogrešno i drugačije
** Uoči također izopačeno zaokruživanje u nekim prikazima(.7890 zaokružuje na .80). Kao da je taj kôd pisao netko iz GlobalHDZajna
*** Uoči kako je pwsh jednostavno izmislio decimalni dio (.7890625) :’D
Pouka
Očito je da ni u kojem slučaju ne smiješ koristiti Powershell za ozbiljne stvari i brojeve s više od jedne (1) decimale. Uzmi Python, to nisu programirali Microsoftovci.
**** Ili pazi da namjestiš ovako što djeluje kao najbolji način.
powershell posh pwsh number formatting culture decimal point comma thousands separator xpowershell xposh xpwsh xnumber xformatting xculture xdecimal xpoint xcomma xthousands xseparator

