转换Double Value ToString()

时间:2015-07-13 12:06:14

标签: c#

我可能会问愚蠢的问题,但我不明白为什么这并没有给我预期的输出( ie 2.5):

double x = 5/2;
Console.WriteLine(x.ToString());

.Net Fiddle

1 个答案:

答案 0 :(得分:4)

5 / 2执行integer division 无论您指定哪种类型。它总是忽视小数部分。

您需要使用浮点除法。

double x = 5.0 / 2;
double x = 5 / 2.0;
double x = 5.0 / 2.0;

来自/ Operator

  

当你除以两个整数时,结果总是一个整数。对于   例如,7/3的结果是2。

从C#规范部分$7.7.2 Division operator,有3种类型的划分;

  • 整数分部
  • 浮点划分
  • 十进制分割

从整数除法的相关部分;

  

该除法将结果舍入为零,且绝对值为   结果是最大可能的整数小于   两个操作数的商的绝对值。结果为零   当两个操作数具有相同的符号且为0或0时为正   当两个操作数具有相反的符号时为负。