2017-08-06 77 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

相关问题