PowershellのToStringの書式指定ではまった
PowerShellのToStringで数値を書式指定で出力する際にはまった2点。どちらもエラーメッセージが適切ではなく、原因特定に苦労した。 PSVersion 5.1.14393.2969, Windows Server 2016上のISEで開発。Set-StrictMode -Version latest 書式#,#はダメ $num.ToString('#,#') にて$numが0だと「“ToString” のオーバーロードで、引数の数が “1” であるものが見つかりません。」と出る。 $num.ToString('#,0') とすることで、正しく出力される。 キャスト後のtoString $s_num="99,999,999,99" の場合に書式指定で出力したい場合、いったんlongにキャストするので [long]$s_num.ToString("#,0") と書くと、同様に「“ToString” のオーバーロードで、引数の数が “1” であるものが見つかりません。」とでる。正解は ([long]$s_num).ToString("#,0") キャスト演算子よりもToStringの方が優先度が高いのか…