我正在尝试添加百分号("%")以附加到变量:
import process_words
word = "HELLO"
word_lower = process_words.word_to_lower(word)
print(word_lower)
但我得到的只是:
无法转换价值"%"输入" System.Double"。错误:"输入字符串 格式不正确。"
大概是因为它认为" +"运营商正在进行计算?我尝试过各种各样的联合选项,但似乎无法做到这一点。有人可以帮忙吗?
答案 0 :(得分:2)
<强>解释强>
在输出周围添加" "
以将其视为字符串,然后将变量附加到末尾。这意味着您可以将其从%
切换为Percent Remaining
等字符串。
希望这有帮助,你就近了!
<强>代码:强>
$disk = Get-WmiObject -ComputerName $Computer -Class Win32_LogicalDisk -Filter "Caption = 'D:'"
If (!($disk)) {
$DiskpercentFree = "n/a"
}
Else {
$deviceID = $disk.DeviceID
[float]$size = $disk.Size;
[float]$freespace = $disk.FreeSpace;
$diskpercentFree1 = [Math]::Round(($freespace / $size) * 100)
$Percent = '%'
$diskpercentFree = "$diskpercentFree1" + $Percent
}
$diskpercentFree
的示例结果:
PS C:\ Windows \ system32&gt; $ DiskpercentFree
57%
答案 1 :(得分:1)
有几种方法可以做到这一点:
将变量指定为字符串:
$diskpercentFree = "$diskpercentFree1$Percent"
将double值转换为字符串:
$diskpercentFree = "$diskpercentFree1" + $Percent
# Or
$diskpercentFree = [string]$diskpercentFree1 + $Percent
无需为%
字符使用单独的变量:
$diskpercentFree = "$diskpercentFree1%"
答案 2 :(得分:0)
如果您想以百分比形式输出值,我建议使用字符串格式。例子:
PS C:\> "{0:P}" -f 1
100.00 %
PS C:\> "{0:P1}" -f .986
98.6 %
PS C:\> "{0:P0}" -f .75
75 %
-f
的文档位于about_Operators page,并且有关于如何实现各种结果的.NET文档的链接。