我们需要将普通数字转换为货币值。然而,我们发现似乎没有任何效果。
我们尝试了下面的基本代码,但它返回的值是 123,456.00 美元,而它应该是 1,234.56 美元。
$rawNumber = 123456
$newNumber = 0
$newNumber = "{0:c}" -f $rawNumber
我们尝试了“{0:c}”(c2、c1 等)的不同迭代,但它总是返回一个数字,但只是在末尾添加零。
我们尝试将数字转换为字符串并插入小数点、逗号和美元符号,但我们处理的数字可能短至 2 或长至 10,因此尝试和计划它变得有点像野兽每一种可能的组合。
我们是否遗漏了一些显而易见的东西来轻松将数字转换为货币值(value)?
感谢您提供任何帮助。
最佳答案
如果对一种货币的主要单位进行了分割,则需要将输入值除以得到主要单位的数量,在这种情况下:
$dollars = $rawNumber / 100
$formattedString = '{0:C}' -f $dollars
请注意,生成的格式化字符串将取决于当前的语言环境。您可以通过
[cultureinfo]
反对ToString()
如果您想要强制执行特定的语言环境,请使用目标对象的方法。此处显示为 en-US
, de-DE
和 da-DK
:PS C:\> 'en-US','de-DE','da-DK' |ForEach-Object { $dollars.ToString('C',[cultureinfo]$_) }
$1,234.56
1.234,56 €
1.234,56 kr.
关于powershell - 将数字转换为货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57061395/