Powershell有没有简单的方法将int 5转换为字符串5或68到68?
答
这已被问到关于.NET/C#;你可以把它放在一个类中,并在powershell中使用Add-Type
来完成这个工作。
.NET convert number to string representation (1 to one, 2 to two, etc...)
也许是这样的(未经测试):
$class = @"
public class Num2Word
{
public static string NumberToText(int n)
{
if (n < 0)
return "Minus " + NumberToText(-n);
else if (n == 0)
return "";
else if (n <= 19)
return new string[] {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight",
"Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen",
"Seventeen", "Eighteen", "Nineteen"}[n-1] + " ";
else if (n <= 99)
return new string[] {"Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy",
"Eighty", "Ninety"}[n/10 - 2] + " " + NumberToText(n % 10);
else if (n <= 199)
return "One Hundred " + NumberToText(n % 100);
else if (n <= 999)
return NumberToText(n/100) + "Hundreds " + NumberToText(n % 100);
else if (n <= 1999)
return "One Thousand " + NumberToText(n % 1000);
else if (n <= 999999)
return NumberToText(n/1000) + "Thousands " + NumberToText(n % 1000);
else if (n <= 1999999)
return "One Million " + NumberToText(n % 1000000);
else if (n <= 999999999)
return NumberToText(n/1000000) + "Millions " + NumberToText(n % 1000000);
else if (n <= 1999999999)
return "One Billion " + NumberToText(n % 1000000000);
else
return NumberToText(n/1000000000) + "Billions " + NumberToText(n % 1000000000);
}
}
@"
Add-Type -TypeDefinition $class
[Num2Word]::NumberToText(555)
没有理由你不能写为纯PowerShell的,但是这已经写!
不,在PowerShell中没有内置的方法来做到这一点。你必须编写自己的函数才能这样做。 – 2014-10-31 20:06:38