2 u012771039 u012771039 于 2013.12.19 20:31 提问

.NET C# 字符串串联问题
c#

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

CSDN移动问答

3个回答

u011578007
u011578007   2013.12.19 20:45
已采纳

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

u012771039
u012771039 要是要他输出5.015怎么办呢
接近 4 年之前 回复
u011578007
u011578007   2013.12.19 21:21

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

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

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

sunwow
sunwow   2014.01.03 16:49

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

Csdn user default icon
上传中...
上传图片
插入图片