.NET C# 字符串串联问题

如图所示:Console.WriteLine(5.0 + "15");
为什么该语句的运行结果是515而不是5.015

CSDN移动问答

Console.WriteLine(5.0 + "15");
其中5.0是double或float类型,而“15”是字符串类型
但是Console.WriteLine输出的是int类型
所以最终输出的是515,它的结果是5 15,只不过中间的空格在语言中是空格符,转换后省略

double x, y;
x = 5;
y = 0.015;

Console.WriteLine(5+0.015);
Console.WriteLine(x+y);
只能直接加,又或者定义类型变量,并进行赋值,从而改变结果,要注意的就是类型定义完成后,要与定义的类型匹配,否则就会出错。

定义的类型double 或 float 类型都可以

Console.WriteLine(5.0 + "15");
你这个实际上是发生了隐式的类型转换,也就是说把5.0变成了字符型的5再进行相加,自然就是515.
给你写了一段程序你来体验一下。

var i = 5.0;
Console.WriteLine(i.ToString() + "15");//515
Console.WriteLine(i.ToString("0.0") + "15");//5.015