将 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
    

我怎样才能做到这一点?

编辑:resultvalue 都是 int 变量。

【问题讨论】:

阅读错误信息。 为什么要以任何方式将 int 转换为 double ?整数没有任何小数。无论如何,您可以使用 double.Parse() 方法。 @Mitja 不,你不能; double.Parse 仅适用于 字符串 我们不知道rezultatvalue 的类型,因为您没有包含声明它们的代码段。在提出涉及选角的问题时,此类信息很重要。 @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】:

如果您的两个变量都不是doubles,请将它们分配给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 的结果。否则,如果resultatvalue 都是int,您将不会得到浮点数。例如,5 / 3 = 1,但(double)5 / 3 = 1.666667。请注意,1.6666667 的值只是 double

【讨论】:

以上是关于将 int 变量转换为 double的主要内容,如果未能解决你的问题,请参考以下文章

matlab中怎样将double型矩阵转换为int8型矩阵

将 Int 指针分配给 double 变量

java中如何把一个String类型的变量转换成double型的?

java中的变量定义

变量的数据类型的转换

请问double型可以强制转换成int型吗?