powershell - 将数字转换为货币

标签 powershell currency-formatting

我们需要将普通数字转换为货币值。然而,我们发现似乎没有任何效果。

我们尝试了下面的基本代码,但它返回的值是 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-DEda-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/

相关文章:

c - 从 powershell 调用 vcvarsall.bat 后运行构建脚本

c# - 币种显示去掉 'US'之前的 '$'

java - 用逗号格式化货币数字

powershell - 无法在计算机上启动服务 '.'

powershell - 具有十六进制值的 Invoke-WebRequest

Powershell替换多行文本

powershell - RavenDB 安装问题 System.Net.Sockets.SocketException (10013)

javascript - 将值设置为 <input type ="number"/> 中的货币

iOS:App Store 沙盒为测试用户返回错误的货币

java - 修改 NumberFormat.getCurrencyInstance() 返回的 NumberFormat