将 int 变量转换为 double
Posted
技术标签:
【中文标题】将 int 变量转换为 double【英文标题】:Cast int variable to double 【发布时间】:2012-09-02 14:55:35 【问题描述】:我是一名初学者 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
变量。
【问题讨论】:
阅读错误信息。 为什么要以任何方式将 int 转换为 double ?整数没有任何小数。无论如何,您可以使用 double.Parse() 方法。 @Mitja 不,你不能;double.Parse
仅适用于 字符串。
我们不知道rezultat
和value
的类型,因为您没有包含声明它们的代码段。在提出涉及选角的问题时,此类信息很重要。
@H2CO3 考虑到这个问题,我认为这不是一个明显的假设。
【参考方案1】:
(double)rezultat /= ...
不好。转换表达式的结果始终是右值,即。 e.无法分配的东西。相关:您不能更改表达式的类型(您可以强制转换它,但这不会真正改变它的类型,只是暂时充当另一种类型)。一旦您将变量声明为 int
,您将无法在其中存储双精度 - 但是您转换除法等。它最终总是会被截断。
您很可能必须引入一个double
临时变量来存储除法的结果。
【讨论】:
附带说明,如果 OP 正在开发一个计算器应用程序,他最好使用decimal
类型而不是 double
。
@Rotem 是的。不过,我仍然不明白他为什么需要对双打进行模运算..【参考方案2】:
Convert.ToDouble(int);
http://msdn.microsoft.com/en-us/library/system.convert.todouble.aspx
【讨论】:
是的,但实际上不会将我的变量转换为双变量,它会将值转换为不是吗? 这没有回答问题。 @user985482 你不能转换变量的类型。 C# 是静态类型的。【参考方案3】:如果您的两个变量都不是double
s,请将它们分配给double
变量,然后除以。
VarDouble = (double)int.....; VarDouble /= VarDouble1 etc
(double)rezultat /= value
我认为您正在尝试将rezultat
设为double
,并且我认为它没有被声明为一个,而您只是不能这样做。包含result
的结果变量也必须是double
,否则您将得到一个未四舍五入的整数。
【讨论】:
【参考方案4】:这取决于rezultat
变量的类型。如果是double
,那么你什么都不用做,在任何情况下都不会使用整数除法。但如果是int
,那么你的演员表没有任何意义,你不能将double
值存储在int
变量中。
因此,正确的解决方案取决于您到底想做什么。但是,如果您的目标是将实际除法的结果作为double
,您将需要一些double
变量。如果你有这个,你的if
就没有任何意义了,在所有情况下都使用double
除法。
【讨论】:
【参考方案5】:试试这个:
double rezultat = 1992;
rezultat /= value;
resultat
必须是double
才能存储rezultat / value
的结果。否则,如果resultat
和value
都是int
,您将不会得到浮点数。例如,5 / 3 = 1
,但(double)5 / 3 = 1.666667
。请注意,1.6666667
的值只是 double
。
【讨论】:
以上是关于将 int 变量转换为 double的主要内容,如果未能解决你的问题,请参考以下文章