C#fahrenheit到摄氏

时间:2016-09-09 02:13:47

标签: c# .net

  public static void Main()
  {
      WriteLine("Farenheit Here>>");
      int F = Int32.Parse(ReadLine());

      Double FtoC = (5.0 / 9.0) * (F - 32);
      WriteLine("the celsius is {0} ", FtoC);
  }

输入适用于整数,但我也希望它适用于十进制数。防爆。如果我输入10它会给我一个答案,但如果我输入10.5它将停止工作。我确实是C#的新手。

3 个答案:

答案 0 :(得分:1)

你需要使用你想要的数字解析器,目前你正在使用int

generateDeck :: Int -> Deck
generateDeck players = basics ++ actions ++ bombs
  where
    cats = concatMap (replicate 5 . Basic) [TacoCat ..]
    actions = map Action . concat $
              [ replicate 2 Nope
              , replicate 4 Skip
              , replicate 4 Attack
              , replicate 4 Shuffle
              , replicate 4 Future
              , replicate 1 Defuse
              , replicate 4 Favor
              ]
    bombs = replicate (players + 1) BombCard

你可以使用double或decimal(我建议使用十进制数加倍)

Int32.Parse(ReadLine()); 

然后改为

decimal F = Decimal.Parse(ReadLine());

(M用于定义小数文字)

答案 1 :(得分:0)

int不存储十进制数。使用doubledecimal

public static void Main()
{
    WriteLine("Farenheit Here>>");
    double F = double.Parse(ReadLine());
    Double FtoC = (5.0 / 9.0) * (F - 32);
    WriteLine("the celsius is {0} ", FtoC);
}

答案 2 :(得分:0)

嗯,Int32 具体用于处理整数。如果您想要处理Decimal值,他们会使用自己的 Parse方法,因此我会查看以下内容:

public static void Main() {
    Console.Write("Farenheit Here>> ");
    Decimal F = Decimal.Parse(Console.ReadLine());
    Decimal FtoC = (5.0M / 9.0M) * (F - 32M);
    Console.WriteLine("The celsius is {0} ", FtoC);
}

请注意使用M后缀。如果您想使用Decimal类型,那么您可能最好完全拒绝它们,而不是恢复为double类型及其foibles