我想问一下下边这段代码哪里错了?
错误提示是无法将类型void隐式转换为float
using System;
using System.Collections.Generic;
using System.Text;namespace 工资计算法
{
class Program
{
static void Main(string[] args)
{
float money;
Console.WriteLine("请输入您的工资数额:");
float gongZi = float.Parse(Console.ReadLine());
Console.WriteLine("请输入税率:");
float taxrate = float.Parse(Console.ReadLine());
money = GetPay(ref gongZi, ref taxrate,ref money);
Console.WriteLine("您的税后工资为:" + money);
Console.ReadLine();
}
private static void GetPay(ref float gongZi,ref float taxrate,ref float money)
{
if (gongZi <= 1600)
{
money = gongZi;
}
else
{
money = gongZi - (gongZi - 1600) * taxrate;
}
}
}
}
错误提示是无法将类型void隐式转换为float
using System;
using System.Collections.Generic;
using System.Text;namespace 工资计算法
{
class Program
{
static void Main(string[] args)
{
float money;
Console.WriteLine("请输入您的工资数额:");
float gongZi = float.Parse(Console.ReadLine());
Console.WriteLine("请输入税率:");
float taxrate = float.Parse(Console.ReadLine());
money = GetPay(ref gongZi, ref taxrate,ref money);
Console.WriteLine("您的税后工资为:" + money);
Console.ReadLine();
}
private static void GetPay(ref float gongZi,ref float taxrate,ref float money)
{
if (gongZi <= 1600)
{
money = gongZi;
}
else
{
money = gongZi - (gongZi - 1600) * taxrate;
}
}
}
}
这里出问题,GetPay是没有返回值的。你用了ref的话,直接调用GetPay,money的值就变了。
{
if (gongZi <= 1600)
{
money = gongZi;
}
else
{
money = gongZi - (gongZi - 1600) * taxrate;
}
} 你的返回類型為void ,調用這個後,又賦值給money,明顯就出錯在這里 返回值應該為float
{
float money;
Console.WriteLine("请输入您的工资数额:");
float gongZi = float.Parse(Console.ReadLine());
Console.WriteLine("请输入税率:");
float taxrate = float.Parse(Console.ReadLine());
GetPay(ref gongZi, ref taxrate,ref money);
Console.WriteLine("您的税后工资为:" + money);
Console.ReadLine();
}
这样就行了。
static void Main(string[] args)
{
float money;
Console.WriteLine("请输入您的工资数额:");
float gongZi = float.Parse(Console.ReadLine());
Console.WriteLine("请输入税率:");
float taxrate = float.Parse(Console.ReadLine());
money = GetPay(gongZi, taxrate);
Console.WriteLine("您的税后工资为:" + money);
Console.ReadLine();
}
private static float GetPay(float gongZi, float taxrate)
{
float money = 0.00;
if (gongZi <= 1600)
{
money = gongZi;
}
else
{
money = gongZi - (gongZi - 1600) * taxrate;
}
return money;
}
money = GetPay(ref gongZi, ref taxrate,ref money);
这两个地方有问题。