1.类型转换
隐式类型转换:
我们要求等号两边参与运算的操作符的类型必须一致,如果不一致,满足下列条件会发生自动类型转换,或者称之为隐式类型转换。
a.两种类型兼容
例如:int和double兼容(都是数字类型)
b.目标类型大于源类型
例如:double>int 小的转大的
显示类型转换:
1.两种类型相兼容 int--double
2.大的转成小的 double--int
语法:
(待转换的类型)要转换的值;
总结:
自动类型转换:int-->double
显示类型转换:double-->int
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02_My_Second_Demo
{
internal class Program
{
static void Main(string[] args)
{
//某商店T恤的价格为35元/件
//裤子的价格120元/条,小明在该店买了3件T恤和2条裤子
//应付多少钱?
int t = 35;
int k = 120;
int money = 3 * t + 2 * k;
Console.WriteLine(money);
double money1 = money * 0.8;
Console.WriteLine(money1);
Console.ReadKey() ;
//打八折的价格?
int number = 10;
//int--double
double n = number;//自动类型转换 隐式类型转换
double d = 303.6;
//double--int //强制类型转换 显示类型转换
int dd = (int)d;
Console.WriteLine(dd);
Console.ReadKey() ;
}
}
}
2.特殊类型转换
double d = n1 * 1.0 / n2;
对于表达式,如果一个操作数的类型为double类型,则整个表达式可提升为double类型
Console.WriteLine("{0:0.000}",d);
保留3位小数
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02_My_Second_Demo
{
internal class Program
{
static void Main(string[] args)
{
int n1 = 10;
int n2 = 3;
double d = n1 * 1.0 / n2;
Console.WriteLine("{0:0.000}",d);
Console.ReadKey() ;
}
}
}
3.Convert类型转换
1.类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,但是,如果两个类型得变量不兼容,比如string与int或者string与double,这个时候,我们可以使用一个叫做convert得转换工厂进行转换。
注意:使用Convert进行类型转换,也需要满足一个条件:面上必须过的去。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02_My_Second_Demo
{
internal class Program
{
static void Main(string[] args)
{
string s = "123";
//将字符串转换成int或者double
double d = Convert.ToDouble(s);
int i = Convert.ToInt32(s);
Console.WriteLine(i);
Console.WriteLine(d);
Console.ReadKey();
//让用户输入姓名,语文,数学,英语 三门课得成绩
//然后给用户提示,xx,你的总成绩为xx分,平均成绩为xx分。
Console.WriteLine("请输入你的姓名");
string name = Console.ReadLine();
Console.WriteLine("请输入你的语文成绩");
string strChinese = Console.ReadLine();
Console.WriteLine("请输入你的数学成绩");
string strMath = Console.ReadLine();
Console.WriteLine("请输入你的英语成绩");
string strEnglish = Console.ReadLine();
int chinses = Convert.ToInt32(strChinese);
int math = Convert.ToInt32(strMath);
int english = Convert.ToInt32(strEnglish);
Console.WriteLine("{0},你的总成绩为{1},平均成绩为{2}", name, chinses + math + english, (chinses + math + english) / 3);
Console.ReadKey();
//也可以用double进行接受
}
}
}