PowerShellで、別のロケールで数値などをフォーマットする簡単な方法はありますか?私は現在、SVGの生成を容易にするためにいくつかの関数を書いていますが、SVGは.
小数点記号として使用しますが、PowerShellはde-DE
浮動小数点数を文字列に変換するときにロケール設定()を尊重します。
関数などに固執せずに別のロケールを設定する簡単な方法はありますか?
.ToString((New-Object Globalization.CultureInfo ""))
すべてのdouble
変数の後?
注:これは、フォーマット文字列ではなく、フォーマットに使用されるロケールに関するものです。
(副次的な質問:その場合、不変の文化を使用する必要がありen-US
ますか?)
ETA:ええと、ここで試しているのは次のようなものです。
function New-SvgWave([int]$HalfWaves, [double]$Amplitude, [switch]$Upwards) {
"<path d='M0,0q0.5,{0} 1,0{1}v1q-0.5,{2} -1,0{3}z'/>" -f (
$(if ($Upwards) {-$Amplitude} else {$Amplitude}),
("t1,0" * ($HalfWaves - 1)),
$(if ($Upwards -xor ($HalfWaves % 2 -eq 0)) {-$Amplitude} else {$Amplitude}),
("t-1,0" * ($HalfWaves - 1))
)
}
私はいつも書く傾向があり、double値はコンマ(私のロケールで使用)の代わりに小数点を使用する必要があります。
ETA2:追加する興味深い雑学:
PS Home:> $d=1.23
PS Home:> $d
1,23
PS Home:> "$d"
1.23
変数を文字列に入れることによって、設定されたロケールはどういうわけか適用されないようです。