[英]Cast int variable to double
我是一名初学 C# 程序员,我正在尝试创建一个计算器。 我似乎无法弄清楚如何将int
变量转换为double
。 这是我到目前为止:
public void oImpartire() {
if (rezultat % value == 0)
{
rezultat /= value;
}
else {
(double)rezultat /= value; // this should be double but I get an error
}
}
我怎样才能使这项工作?
编辑: result
和value
都是int
变量。
(double)rezultat /= ...
不好。 转换表达式的结果总是一个右值,即不能赋值的东西。 相关:你不能改变表达式的类型(你可以转换它,但这不会真正改变它的类型,只是暂时充当另一种类型)。 一旦您将变量声明为int
,您将无法在其中存储双精度值 - 无论您如何转换除法等,它最终都会被截断。
您很可能必须引入一个double
临时变量来存储除法的结果。
Convert.ToDouble(int);
http://msdn.microsoft.com/en-us/library/system.convert.todouble.aspx
如果您的两个变量都不是double
,请将它们分配给一个double
变量,然后进行除法。
VarDouble = (double)int.....; VarDouble /= VarDouble1 etc
(double)rezultat /= value
我想你正试图让rezultat
成为一个double
,我认为它没有被声明为一个,你就是不能那样做。 保存result
变量也必须是double
否则您将得到一个未四舍五入的整数。
这取决于rezultat
变量的类型。 如果它是double
,那么你不必做任何事情,在任何情况下都不会使用整数除法。 但是如果它是int
,那么你的演员表没有任何意义,你不能在int
变量中存储double
int
值。
因此,正确的解决方案取决于您究竟想做什么。 但是,如果您的目标是将实际除法的结果作为double
,那么您将需要一些double
变量。 如果你有那个,你的if
将不再有任何意义,只需在所有情况下使用double
除法。
试试这个:
double rezultat = 1992;
rezultat /= value;
resultat
必须是double
才能存储rezultat / value
的结果。 否则,如果resultat
和value
都是int
,您将不会得到浮点数。 例如, 5 / 3 = 1
,但是(double)5 / 3 = 1.666667
。 请注意,值1.6666667
只是一个double
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.