Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改小数点后输出值上的整数数_C# - Fatal编程技术网

C# 更改小数点后输出值上的整数数

C# 更改小数点后输出值上的整数数,c#,C#,所以我正在学习和实践WP7应用程序开发 我正在使用整数(货币),它似乎总是在小数点后显示四个整数。我试图把它减少到小数点后一位或两位 我一直在尝试使用“my variable.ToString(“C2”)”(C表示货币,2表示小数点后的整数) 我可能遗漏了一些明显的东西,但请帮忙 decimal number = new decimal(1000.12345678); string text = number.ToString("#.##"); 输出: 1000,12 另一种方式: Num

所以我正在学习和实践WP7应用程序开发

我正在使用整数(货币),它似乎总是在小数点后显示四个整数。我试图把它减少到小数点后一位或两位

我一直在尝试使用
“my variable.ToString(“C2”)”
(C表示货币,2表示小数点后的整数)

我可能遗漏了一些明显的东西,但请帮忙

decimal number = new decimal(1000.12345678);
string text = number.ToString("#.##");

输出:

1000,12
另一种方式:

NumberFormatInfo nfi = new NumberFormatInfo();
nfi.CurrencyDecimalDigits = 2;
decimal val = new decimal(1000.12345678);
string text = val.ToString("c", nfi);
设置货币格式时,还允许指定以下属性:

  • 货币小数位数
  • 货币小数分隔符
  • CurrencyGroupSeparator
  • CurrencyGroupSize
  • 货币否定模式
  • 电流正模式
  • 货币符号
有关更多示例,请参见MSDN上的

输出:

1000,12
另一种方式:

NumberFormatInfo nfi = new NumberFormatInfo();
nfi.CurrencyDecimalDigits = 2;
decimal val = new decimal(1000.12345678);
string text = val.ToString("c", nfi);
设置货币格式时,还允许指定以下属性:

  • 货币小数位数
  • 货币小数分隔符
  • CurrencyGroupSeparator
  • CurrencyGroupSize
  • 货币否定模式
  • 电流正模式
  • 货币符号

有关更多示例,请参见MSDN上的内容

对于“sll”答案,我唯一想补充的是注意(他们经常忘记注意这一点),例如(示例)


对于“sll”的答案,我唯一想补充的是要注意(他们经常忘记记住这一点),就像这样(示例)

这将以以下格式显示:$###

这将以以下格式显示:$#。##

如中所述,“C”格式字符串定义货币说明符。这将包括当前区域性或特定区域性(如果提供)的货币符号,例如

double amount = 1234.5678;
string formatted = amount.ToString("C", CultureInfo.CreateSpecificCulture("en-US"));
// This gives $1234.56
在您的例子中,您支持的货币符号集似乎有限,因此我建议使用定点格式说明符“F”。默认情况下,这将为您提供2个小数点,但您可以指定一个数字来改变这一点,例如

double amount = 1234.5678;
string formatted = amount.ToString("F");
// This gives 1234.56
formatted = amount.ToString("F3");
// This gives 1234.567
使用定点说明符可以控制小数点的数量,并使您能够连接货币符号。

如所述,“C”格式字符串定义货币说明符。这将包括当前区域性或特定区域性(如果提供)的货币符号,例如

double amount = 1234.5678;
string formatted = amount.ToString("C", CultureInfo.CreateSpecificCulture("en-US"));
// This gives $1234.56
在您的例子中,您支持的货币符号集似乎有限,因此我建议使用定点格式说明符“F”。默认情况下,这将为您提供2个小数点,但您可以指定一个数字来改变这一点,例如

double amount = 1234.5678;
string formatted = amount.ToString("F");
// This gives 1234.56
formatted = amount.ToString("F3");
// This gives 1234.567


使用定点说明符可以控制小数点的数量,并使您能够连接货币符号。

您是否考虑过查看十进制、双精度和货币类型的string.Format方法..?您是否尝试过.ToString(“c”)?它应该将您的值转换为货币格式,并保留正确的小数位数。您是否翻译了VisualStudio中的错误消息?在初始化变量之前,您不能使用该变量(:您显示的代码仅尝试返回货币符号。如何显示该值?您好,Hans,该值正在Windows Phone中显示。您是否考虑查看十进制、双精度和货币类型的string.Format方法….?您是否尝试了.ToString(“c”)?它应将您的值转换为货币格式,小数位数正确。您是否翻译了VisualStudio中的错误消息?在初始化变量之前,您不能使用该变量(:显示的代码仅尝试返回货币符号。如何显示该值?嗨,Hans,该值正在Windows Phone中显示。尝试此操作后,它没有产生任何错误,但仍显示4位小数。例如,在调试器/监视窗口/文本框/网页中显示4位小数?基本上显示为c您使用的ode在WP emulator中显示四位小数。当应用程序运行时,请参阅更新的答案,基本上尝试手动创建并指定
NumberFormatInfo
请使用
Decimal
而不是
Double
。尝试此操作后,它没有产生任何错误,但仍显示四位小数。例如:40.0000Wh在调试器/监视窗口/文本框/网页中显示4位小数之前?基本上显示您使用过的代码在WP emulator中显示四位小数,当应用程序运行时请参阅更新的答案,基本上尝试手动创建并指定
NumberFormatInfo
请使用
decimal
而不是
Double
>。我必须为此添加一个“文化”名称空间?@AlexD:System.Globalization Mapespace是的,我可以添加名称空间;)但我发现这种文化的复杂性在于你的答案的结构与我正在处理的代码相关联thing@AlexD当前位置这东西没什么复杂的(至少如果我们使用.NET技术)。问题是,如果我们使用浮点数,在我看来,关注我们使用的文化总是很重要的。例如:英语和法语文化中的delimeters是不同的(一个是a',另一个是a',),因此,如果您在英语系统上存储双精度数据并将数据传递给法语系统,您将在反序列化上得到不可预测的结果。@Tigran我理解您的意思。但我使用的是一致的英语分隔符。为什么我要使用法语?您是否有可能使用Skype?我必须为此添加一个“文化”名称空间?@AlexD:system.Globa是的,我可以添加名称空间(好的;),但是我发现这种文化的复杂性在于你的答案的结构与我正在处理的代码相关thing@AlexD当前位置这些东西并不复杂(至少如果我们使用.NET技术).问题是如果我们使用浮点数,依我看,付款总是很重要的