【问题标题】:Convert Double Value ToString() [duplicate]转换双值 ToString() [重复]
【发布时间】:2015-07-13 12:06:14
【问题描述】:

可能是我在问愚蠢的问题,但我不明白为什么这不能给我预期的输出( 2.5):

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

.Net Fiddle

【问题讨论】:

  • 整数除法。 5/2 == 2.试试double x = 5.0/2
  • Tnx @AlexD!答案帮助我理解了

标签: c#


【解决方案1】:

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种划分;

  • 整数除法
  • 浮点除法
  • 小数除法

从整数除法的相关部分;

除法将结果四舍五入到零,并且绝对值 结果是小于 两个操作数的商的绝对值。结果为零 或正,当两个操作数具有相同的符号和零或 当两个操作数的符号相反时为负数。

【讨论】:

  • 谢谢@Soner Gönül,很好的解释
猜你喜欢
  • 2016-10-20
  • 2015-10-09
  • 2016-05-18
  • 2015-07-19
  • 2018-06-04
  • 2015-01-26
  • 2018-07-24
  • 2016-05-21
  • 1970-01-01
相关资源
最近更新 更多