在 C# 中将字符串类型转换为货币
Converting String Type to Currency in C#
我正在尝试将 TR 和 PMP 的字符串输入转换为货币,然后相乘以获得美元货币的输出。
string SP; // Sales Price
string TR; //Total Revenue
string PMP; //Property management percentage
string PMF; //Property Management Monthly Fee
Console.WriteLine("What is the total rent revenue?");
TR = Console.ReadLine();
Console.WriteLine("what is the percentage you pay to property managment?");
PMP = Console.ReadLine();
Console.WriteLine("you will be buying {0}", PMF );
SP = Console.ReadLine();
TR = Console.ReadLine();
PMP = Console.ReadLine();
PMF = string.Format("{TR:C,PMP:C}") <------- THIS IS WHERE I AM TRYING TO CONVERT AND MULTIPLY****
任何帮助将不胜感激。谢谢
PS 我不是职业程序员(主要是网络工程和服务器管理员),这是我开始编程的前 20 个小时。
Format
语法更像 string.Format("{0:C},{1:C}", TR, PMP)
。
- 您只能像这样格式化数字类型,例如
decimal
。考虑 decimal.TryParse
查看用户输入的内容是否看起来像数字,然后格式化结果数字。
- 对于乘法,您当然需要数字类型,例如
decimal
,并且您使用星号 *
作为乘法运算符。
如果是我,我会首先创建一个方法来从用户那里获取有效的十进制数(因为我们多次这样做,并且当用户输入无效条目时它应该有一些错误处理) .类似于:
public static decimal GetDecimalFromUser(string prompt,
string errorMessage = "Invalid entry. Please try again.")
{
decimal value;
while (true)
{
if (prompt != null) Console.Write(prompt);
if (decimal.TryParse(Console.ReadLine(), out value)) break;
if (errorMessage != null) Console.WriteLine(errorMessage);
}
return value;
}
然后,我会调用这个方法来获取用户的输入,进行所需的计算(你没有指定公式,所以我即兴发挥),并将值输出给用户:
decimal totalRevenue = GetDecimalFromUser("Enter the monthly rent revenue: $");
decimal propMgmtPct = GetDecimalFromUser("Enter the percentage you pay " +
"for property management: ");
decimal propMgmtFee = totalRevenue * propMgmtPct;
Console.WriteLine("The monthly property management fee will be: {0}",
propMgmtFee.ToString("C2", CultureInfo.CreateSpecificCulture("en-US")));
我正在尝试将 TR 和 PMP 的字符串输入转换为货币,然后相乘以获得美元货币的输出。
string SP; // Sales Price
string TR; //Total Revenue
string PMP; //Property management percentage
string PMF; //Property Management Monthly Fee
Console.WriteLine("What is the total rent revenue?");
TR = Console.ReadLine();
Console.WriteLine("what is the percentage you pay to property managment?");
PMP = Console.ReadLine();
Console.WriteLine("you will be buying {0}", PMF );
SP = Console.ReadLine();
TR = Console.ReadLine();
PMP = Console.ReadLine();
PMF = string.Format("{TR:C,PMP:C}") <------- THIS IS WHERE I AM TRYING TO CONVERT AND MULTIPLY****
任何帮助将不胜感激。谢谢
PS 我不是职业程序员(主要是网络工程和服务器管理员),这是我开始编程的前 20 个小时。
Format
语法更像string.Format("{0:C},{1:C}", TR, PMP)
。- 您只能像这样格式化数字类型,例如
decimal
。考虑decimal.TryParse
查看用户输入的内容是否看起来像数字,然后格式化结果数字。 - 对于乘法,您当然需要数字类型,例如
decimal
,并且您使用星号*
作为乘法运算符。
如果是我,我会首先创建一个方法来从用户那里获取有效的十进制数(因为我们多次这样做,并且当用户输入无效条目时它应该有一些错误处理) .类似于:
public static decimal GetDecimalFromUser(string prompt,
string errorMessage = "Invalid entry. Please try again.")
{
decimal value;
while (true)
{
if (prompt != null) Console.Write(prompt);
if (decimal.TryParse(Console.ReadLine(), out value)) break;
if (errorMessage != null) Console.WriteLine(errorMessage);
}
return value;
}
然后,我会调用这个方法来获取用户的输入,进行所需的计算(你没有指定公式,所以我即兴发挥),并将值输出给用户:
decimal totalRevenue = GetDecimalFromUser("Enter the monthly rent revenue: $");
decimal propMgmtPct = GetDecimalFromUser("Enter the percentage you pay " +
"for property management: ");
decimal propMgmtFee = totalRevenue * propMgmtPct;
Console.WriteLine("The monthly property management fee will be: {0}",
propMgmtFee.ToString("C2", CultureInfo.CreateSpecificCulture("en-US")));