2017-08-06 106 views
-2

我是一個幾乎沒有編碼知識的新手。感謝你們所有會麻煩回答我的人。將輸入數字轉換爲正確的十進制輸出?

我曾試着在Stackoverflow中尋找這個問題,但我沒有找到任何東西(可能是因爲我缺乏經驗)。

現在,我的問題:如何將輸入數字轉換爲正確的十進制輸出?

我已經嘗試使用下面的代碼(遵循微軟虛擬學院的免費課程),但它只適用於當我刪除我的變量。再次

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApp1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      //string myString = "My \"so-called\" life"; 
      //string myString = "What if I need a\nnew line?"; 
      //string myString = "Go to your c:\\drive"; 
      //string myString = @"Go to your c:\drive"; 
      //string myString = String.Format("{0} = {1}", "First", "Second"); 
      //string myString = String.Format("{0:C}", 123.45); 
      Console.Write("Insert a number: "); 
      var data1 = Console.ReadLine(); 
      string myString = String.Format("{0:N}", data1); 

      Console.WriteLine(myString); 
      Console.ReadLine(); 
     } 
    } 
} 

謝謝, 亞歷克斯

+1

您可以使用['Decimal.Parse'](https://msdn.microsoft.com/en-us/library/system.decimal.parse(v = vs.110).aspx)將字符串轉換爲小數點。 –

+1

你是什麼意思與''它只適用於當我刪除我的變量''? –

+0

@RandRandom他多次聲明變量。它在刪除重複的聲明(在粘貼的代碼中註釋掉)後起作用。至少,這就是我所推測的他的意思。 – Amy

回答

2

我如何轉換的輸入數字到正確的小數輸出?

我們需要清楚我們的術語,所以讓我從那裏開始。

你有一個string包含一個數字。你沒有號碼。 Console.ReadLine()返回一個字符串。它可能有包含的一個數字,但是當描述這個問題時,重要的是要把它稱爲它。

它可能會感到迂腐,但這是一個重要的細節,因爲它會影響我們對a)代碼的理解,b)您正在嘗試做什麼。這兩件事並不總是一致的,爲了有效地幫助你,我們需要對兩者都有一個準確和完整的理解。

因此,你的問題應該被表述爲:

我如何轉換包含數字轉換爲十進制的字符串?

現在,爲了回答這個問題:採取串並提取值超出它的行爲稱爲解析。您想要將字符串解析爲十進制數字。有了這個,你現在應該對Google有足夠的瞭解。

在C#中,可以使用Decimal.Parse(...)將字符串解析爲十進制數。你可能猜到如何將一個字符串解析爲一個整數。

換句話說,在你的情況下,你會使用var myDecimal = Decimal.Parse(data1);

0

結果的Console.ReadLine始終是字符串。 string.Format不夠智能將字符串值轉換爲數字並將其格式化,如果數字格式要求字符串值。

代碼需要更改爲以下

var data1 = Console.ReadLine(); 
var decimal1 = Decimal.Parse(data1); 
string myString = String.Format("{0:N}", decimal1); 
+0

非常感謝您的回答和您的時間。 :) – msxsnatcher

相關問題