double x = 4/10;
writeln(x);
=> 0
为什么不打印分形部分(小数点后的部分)?
double x = 4/10;
writeln(to!double(x));
=> 0
如何用 writeln double 打印?
最佳答案
4
和 10
是 int
值。您的代码中事情发生的顺序是:
4
除以10
整数,得到0
(int
).将
0
int
转换为0
double
。存储在
x
输出
x
要得到double
除法,使用:
double x = 4.0 / 10;
4.0
是一个 double
值,因此 4.0/10
产生一个 double
结果。
关于floating-point - 为什么 float 和 double 不在控制台上打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29673699/