如何在 C# 中显示浮点值?
How to display float values in c#?
我正在使用 C# 中的结构,当我想显示学生的平均成绩(如“4.53”)时,它会打印“453”。这是代码:
using System;
using System.Buffers;
namespace Struct
{
struct student
{
public string name, surname;
public float average;
}
class Program
{
static void Main(string[] args)
{
student[] arr = new student[3];
for (int i = 0; i < 2; i++)
{
Console.Write("name {0}. - ", i + 1);
arr[i].name = Console.ReadLine();
Console.Write("surname {0}. - ", i + 1);
arr[i].surname = Console.ReadLine();
Console.Write("average {0}. - ", i + 1);
arr[i].average = float.Parse(Console.ReadLine());
}
for (int i = 0; i < 2; i++)
{
Console.WriteLine("{0} {1} - {2}", arr[i].name, arr[i].surname, arr[i].average);
}
}
}
}
我也试过这个:
Console.WriteLine(string.Format("{0} {1} - {2:.0#}", arr[i].name, arr[i].surname, arr[i].average));
但它不起作用。
arr[i].average = float.Parse(Console.ReadLine());
您看到的那些警告不仅仅是为了展示,它们试图向您解释为什么您编写的代码在客观上是错误的。
具体来说,您正在读取一个浮点值,该值是由一个不会根据他所居住的国家/地区正确书写数字的人编写的。
由于您没有提供此信息,假设您在提示中写了 2.15
,您的国家/地区希望将浮点数写为 2,15
,而 .
字符改为小数点分隔符。在这种情况下,average
字段将获得值 215
,根据您的本地化规则这是正确的。
您忽略的警告暗示了一种可能的解决方案:您自己指定一种文化信息类型,以防它与系统文化信息不匹配,并且一种始终是不错的默认值的可能文化是 CultureInfo.InvariantCulture
,它使用 .
作为小数点,使用 ,
作为小数点分隔符。
我正在使用 C# 中的结构,当我想显示学生的平均成绩(如“4.53”)时,它会打印“453”。这是代码:
using System;
using System.Buffers;
namespace Struct
{
struct student
{
public string name, surname;
public float average;
}
class Program
{
static void Main(string[] args)
{
student[] arr = new student[3];
for (int i = 0; i < 2; i++)
{
Console.Write("name {0}. - ", i + 1);
arr[i].name = Console.ReadLine();
Console.Write("surname {0}. - ", i + 1);
arr[i].surname = Console.ReadLine();
Console.Write("average {0}. - ", i + 1);
arr[i].average = float.Parse(Console.ReadLine());
}
for (int i = 0; i < 2; i++)
{
Console.WriteLine("{0} {1} - {2}", arr[i].name, arr[i].surname, arr[i].average);
}
}
}
}
我也试过这个:
Console.WriteLine(string.Format("{0} {1} - {2:.0#}", arr[i].name, arr[i].surname, arr[i].average));
但它不起作用。
arr[i].average = float.Parse(Console.ReadLine());
您看到的那些警告不仅仅是为了展示,它们试图向您解释为什么您编写的代码在客观上是错误的。
具体来说,您正在读取一个浮点值,该值是由一个不会根据他所居住的国家/地区正确书写数字的人编写的。
由于您没有提供此信息,假设您在提示中写了 2.15
,您的国家/地区希望将浮点数写为 2,15
,而 .
字符改为小数点分隔符。在这种情况下,average
字段将获得值 215
,根据您的本地化规则这是正确的。
您忽略的警告暗示了一种可能的解决方案:您自己指定一种文化信息类型,以防它与系统文化信息不匹配,并且一种始终是不错的默认值的可能文化是 CultureInfo.InvariantCulture
,它使用 .
作为小数点,使用 ,
作为小数点分隔符。