我正在尝试了解NumberFormatInfo.NegativeSign属性,并在VS中输入以下代码。
CultureInfo ci = CultureInfo.CreateSpecificCulture ("");
ci.NumberFormat.NegativeSign = "\u203E";
double[] numbers = { -1.0, -16.3, -106.35 };
foreach (var number in numbers)
Console.WriteLine (number.ToString (culture));
由于我遇到了一些错误,我将其修改为......
System.Globalization.CultureInfo ci = System.Globalization.CultureInfo.CreateSpecificCulture ("");
ci.NumberFormat.NegativeSign = "\u203E";
double[] numbers = { -1.0, -16.3, -106.35 };
foreach (var number in numbers)
Console.WriteLine (number.ToString (ci));
编译得很好。但输出结果是:
?1
?16.3
?106.35
我从Microsoft页面here上获得了.Net库框架定义的代码,并且Unicode应该将负号更改为OVERLINE字符。我做错了什么吗?我为什么得到“?”标志而不是?
我不知道控制台输出配置要求。谢谢。另一个项目;原始代码在最后一行使用了culture而不是ci。我认为这是一个错字并改变了它。我希望我没错。以下是他们的行:
CultureInfo ci = CultureInfo.CreateSpecificCulture ("");
ci.NumberFormat.NegativeSign = "\u203E";
double[] numbers = { -1.0, -16.3, -106.35 };
foreach (var number in numbers)
Console.WriteLine (number.ToString (culture));
我今天试图发帖提问,我收到一条消息,说我可能无法访问此网站。我不知道是谁或如何评估问题的内容。我也不确定为什么在没有任何问题的负面反馈时我会收到此提示。所提出的问题都不是多余的,他们符合网站上提供的指导原则。
答案 0 :(得分:1)
控制台默认不显示unicode字符。您需要在自己的代码之前使用以下行专门启用它:
Console.OutputEncoding = System.Text.Encoding.Unicode;