gpt4 book ai didi

c# - 为什么货币修饰符 "C"在 C# 中返回 '?' 而不是 '$'?

转载 作者:太空狗 更新时间:2023-10-29 22:25:16 24 4
gpt4 key购买 nike

为什么下面的代码显示'?'而不是“$”?

static void Main(string[] args)
{
float price = 29.56f;
Console.WriteLine(price.ToString("c"));
}

结果是:29,56 ?

最佳答案

这不是一个实际的 ? 字符 - 这是一个打印在控制台中的占位符,因为当前的控制台字体没有任何本地货币的货币符号的字形 (System. Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol).

如果您总是想要美元,则使用 en-US 文化进行格式化:

CultureInfo enUS = new CultureInfo("en-US");
String priceText = price.ToString( "C", enUS );
Console.WriteLine( priceText );

不要对其他文化使用 en-US ,即使他们也使用美元(例如澳元),而是明确使用他们的文化 - 所以如果将来你的程序仍然有效国家改变了他们的货币符号,或者如果他们有其他格式规则(例如不同的小数符号)

CultureInfo australia = new CultureInfo("en-AU");
String priceText = price.ToString( "C", australia );
Console.WriteLine( priceText );

此外,在处理货币或货币值时,您不应使用 IEEE-754 类型,因为它的设计不精确。您应该始终使用固定的小数类型,例如 System.Decimal 或整数美分(尽管您不能使用带有整数美分的 “C” 森林字符串)

关于c# - 为什么货币修饰符 "C"在 C# 中返回 '?' 而不是 '$'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56366927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com