我是一个几乎没有编码知识的新手。感谢所有愿意回答我的人。
在我问之前,我曾尝试在Stackoverflow中查找该问题,但我没有找到任何东西(可能是由于我缺乏经验)。
现在,我的问题是:如何将输入数转换为正确的十进制输出?
我已尝试使用下面的代码(遵循Microsoft虚拟学院的免费课程),但它仅在我删除变量时才有效。
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();
}
}
}
再次感谢, 亚历
答案 0 :(得分:2)
如何将输入数转换为正确的十进制输出?
我们需要明确我们的术语,所以让我从那里开始。
您的string
包含一个数字。你没有号码。 Console.ReadLine()
返回一个字符串。它可能包含一个数字,但在描述问题时,将它称之为它是很重要的。
它可能会感到迂腐,但这是一个重要的细节,因为它会影响我们对a)你的代码的理解,以及b)你想要做什么。这两件事并不总是一致的,为了有效地帮助你,我们需要准确而完整地理解这两者。
因此,您的问题应该表述为:
如何将包含数字的字符串转换为小数?
现在,回答这个问题:获取字符串并从中提取值的行为称为解析。您想要将字符串解析为十进制数。有了这个,你现在应该对谷歌足够了解。
在C#中,您可以使用Decimal.Parse(...)
将字符串解析为十进制数。您可以猜测如何将字符串解析为整数。
换句话说,在您的情况下,您将使用var myDecimal = Decimal.Parse(data1);
。
答案 1 :(得分:0)
Console.ReadLine的结果总是字符串。 string.Format
不够智能,无法将字符串值转换为数字,并在为字符串值请求数字格式时对其进行格式化。
需要将代码更改为以下内容
var data1 = Console.ReadLine();
var decimal1 = Decimal.Parse(data1);
string myString = String.Format("{0:N}", decimal1);