将数字转换为货币
Convert number to currency
我们需要将普通数字转换为货币值。然而,我们发现似乎没有任何效果。
我们尝试了下面的基本代码,但是 returns 价值 123,456.00 美元,而它应该是 1,234.56 美元。
$rawNumber = 123456
$newNumber = 0
$newNumber = "{0:c}" -f $rawNumber
我们尝试了“{0:c}”的不同迭代(c2、c1 等),但它总是 returns 一个数字,只是在末尾添加零。
我们尝试将数字转换为字符串并插入小数点、逗号和美元符号,但我们要处理的数字可能短至 2 或长至 10,因此它变得有点像野兽尝试并计划每一种可能的组合。
我们是否遗漏了一些明显的东西可以轻松地将数字转换为货币价值?
感谢您提供的任何帮助。
如果你有一个货币的主要单位的细分,你需要将输入值除以得到主要单位的数量,在这种情况下:
$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]$_) }
,234.56
1.234,56 €
1.234,56 kr.
您可以使用 {0:C2}
格式化输入 C2
中的 2
是小数位数。
示例:
$rawNumber = 123456
$newNumber = 0
$newNumber = "{0:C2}" -f $rawNumber
我们需要将普通数字转换为货币值。然而,我们发现似乎没有任何效果。
我们尝试了下面的基本代码,但是 returns 价值 123,456.00 美元,而它应该是 1,234.56 美元。
$rawNumber = 123456
$newNumber = 0
$newNumber = "{0:c}" -f $rawNumber
我们尝试了“{0:c}”的不同迭代(c2、c1 等),但它总是 returns 一个数字,只是在末尾添加零。
我们尝试将数字转换为字符串并插入小数点、逗号和美元符号,但我们要处理的数字可能短至 2 或长至 10,因此它变得有点像野兽尝试并计划每一种可能的组合。
我们是否遗漏了一些明显的东西可以轻松地将数字转换为货币价值?
感谢您提供的任何帮助。
如果你有一个货币的主要单位的细分,你需要将输入值除以得到主要单位的数量,在这种情况下:
$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]$_) }
,234.56
1.234,56 €
1.234,56 kr.
您可以使用 {0:C2}
格式化输入 C2
中的 2
是小数位数。
示例:
$rawNumber = 123456
$newNumber = 0
$newNumber = "{0:C2}" -f $rawNumber