2014-05-22 221 views
0

以下是寫一個C#代碼找到一個圓的不能將類型'double'隱式轉換爲'int'。 -error

using System; 
namespace DataTypeApplication 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      double area; 
      const double pi = 3.14; 
      int side; 
      Console.WriteLine("enter the radius of circle:"); 
      side = Convert.ToDouble(Console.ReadLine()); 
      area = (pi * side * side); 
      Console.WriteLine("area is {}", area); 
} 
} 
} 

它給上線一個錯誤的區域的attenmpt

側= Convert.ToDouble(到Console.ReadLine( ));

它說

無法隱式轉換類型 '雙' 到 '廉政'。存在明確的轉換(您是否缺少演員?)

我做錯了什麼?

+1

投烏爾輸入值['雙PI = Math.PI;'](http://msdn.microsoft.com/en-us/library/system。 math.pi.aspx) –

+2

'雙面;'。 –

回答

4

如果你加入的申報和分配你的side變量

int side = Convert.ToDouble(Console.ReadLine()); 

很容易看到您分配double類型的值類型變量int

考慮使用Int32.TryParse方法安全地解析字符串表示整數或聲明sidedouble

+0

我修改**側**的類型加倍。但在運行過程中出現錯誤(在輸入**端**的值後)[link](http://i.imgur.com/PWZHLhV.png) – user2332665

+0

您沒有正確指定格式字符串, Console.WriteLine(「區域爲{0}」,區域)',格式字符串應該參考爲「{0}」 – Andrew

+0

已知道。我正在從tutorialspoint.com和[code](http://www.tutorialspoint.com/csharp/csharp_constants.htm) – user2332665

-1

轉換成int:

int side = (int)Convert.ToDouble(Console.ReadLine()) 
+1

雖然這會在技術上使錯誤消失,但這可能不是期望的行爲,因爲它失去了「雙精度」。 – Smallhacker

+0

@Smallhacker礦工正在工作,但downvoters挖了下來。 – rosko

0

這裏,烏爾從用戶取一個值,使用這行代碼將其轉換爲Convert.ToDouble(Console.ReadLine());

現在你在做什麼錯的是你將此Double類型值存儲在INT類型變量中,現在要糾正此問題,您應該聲明變量'side'爲

double side;

或類型使用本

side = (double) Convert.ToDouble(Console.ReadLine()); 
0
/* how to solve this problem 

    Error 7 The type or namespace name 'CrystalDecisions' could not be 
    found 
    (are you missing a using directive or an assembly reference?) 
    C:\Users\ALI_COM\Documents\Visual Studio 
    2010\Projects\_database_pic\_database_pic\CrystalReport3.cs 14 11 
_database_pic */ 

// now i solved this Problem: 
**properties_> Target Framwork -> .NetFramwork 4** 
+0

嘗試提供完整且格式良好的答案。 – Masoud

相關問題