Tag: 字符串格式化

String.Format相同代码不同视图

我有这样的代码; GridView1.FooterRow.Cells[11].Text = String.Format(“{0:c}”, sumKV) 在我的计算机中,这段代码给出了这样的结果; 但是,当我将此代码上传到我的虚拟机时,它看起来像这样; TL意为土耳其里拉。 但我不想显示货币。 我只想要数字。 我也不想改变数字格式。 (如257.579,02) 我怎样才能在此代码中删除TL ?

如何掩盖字符串?

我有一个值为“1131200001103”的字符串。 如何使用Response.Write(value)以“11-312-001103”格式将其显示为字符串? 谢谢

如何委托默认格式提供程序?

我想创建一个EscapingFormatProvider ,在返回之前自动HTML转义格式化字符串,除非格式参数以!开头: string.Format(new EscapingFormatProvider(), “{0}”, “”); // => <script src=’foo’></script> string.Format(new EscapingFormatProvider(), “{0:!}”, “”); // => 我希望它传递格式参数,少了! 如果有,则为默认格式化程序。 唯一的麻烦是,我不知道如何获得默认的格式化程序。 我发现的所有示例都没有解决委派默认格式化程序的问题。 编辑:这是我提出的: private class EscapingFormatProvider : IFormatProvider, ICustomFormatter { public object GetFormat(Type formatType) { return this; } private string DefaultFormat(string format, object arg) { return string.Format(“{0:” + format + “}”, arg); } public string Format(string format, […]

仅在需要时使用科学记数法

我想将double值解析为string 。 我希望我的号码具有指定的位数(直到运行时才会知道)。 如果这个数字可以用数字的非零值表示,这就是我想要的。 如果数字是这样的零,我希望用科学记数法表示。 一些例子会使这更清楚,这假设我想要3位数: 价值: .2367 输出: “0.23” 价值: .00367 输出: “3.67E-3” 价值: 22.3 产出: “22.3” 价值: 3364.0 输出: “3.36E3” 我的解决方案是使用ToString()方法和N 数字格式字符串 ,如果它导致零恢复到E格式字符串,但这感觉就像重新发明轮子。 有谁知道一个内置的方法来做到这一点?

在值之后显示货币符号

我正在使用CultureInfo方法将所有不同的货币成功格式化为正确的格式。 但在某些例外情况下,例如欧元和瑞典克朗的货币,我需要能够在价值之后添加它们。 目前,我的CultureInfo正在按以下方式格式化它们:“SEK 1.00,00”,当它需要“1.00,00 SEK”时。 任何帮助表示赞赏。

C#:格式化价格值字符串

在C#中,我有一个双变量价格,价值10215.24。 我想在一些数字后用逗号显示价格。 我的预期产量是10,215.24

文本框的自定义日期格式

相关:将3个文本框绑定在一起; 相同的DateTime格式不同 我有三个textboxes ,所有textboxes都应该绑定在同一个日期。 其中两个具有正常的字符串格式。 第三个具有yyyy,jjj/HHmmss的特定格式。 我无法弄清楚如何将此textbox绑定到我拥有的自定义格式,并且如果我更改其中的任何日期值,那么其他textboxes将更新,反之亦然。 private DateTime _dateInViewModel; public DateTime DateInViewModel { get { return _dateInViewModel; } set { _dateInViewModel = value; NotifyPropertyChanged(“DateInViewModel”); } } 自定义格式可以像: format = String.Format(“{0},{1}/{2}”, DateInViewModel.Year, DateInViewModel.DayOfYear.ToString(“d3”), DateInViewModel.ToString(“HHmmss”)); 现在,只有SDate1和STime1正确绑定,并在另一个更改时更新。 我做了一个转换器。 当SDate1和STime1发生更改时,它会正确更新SDate2 ,但在编辑SDate2以更新其他SDate2时不能正常工作。 public class DateTimeConverter : IValueConverter { #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, […]

在C#中实现复杂数字格式的最佳方法

在C#中复制此类行为的最佳方法是什么? // Converts decimal to a 0-padded string with minimum specified width and precision. sprintf(out, “%0*.*lf”, width, precision, decimal); 我读过标准 , 自定义和复合格式字符串,但我看不到任何好方法来实现这一点。 我问的原因是我在一些代码中遇到了这个丑陋的片段我正在维护我们需要根据外部接口指定的可变宽度和精度来格式化一堆小数: private static String ZEROS = “00000000000000000000000000”; public override string Format(decimal input, int width, int precision) { String formatString = ZEROS.Substring(0, width – precision – 1) + “.” + ZEROS.Substring(0, precision); return ToDecimal(input).ToString(formatString); […]

对于已舍入的小负数,StringFormat出现问题

我正在尝试编写一个字符串格式,将数字舍入或填充到两个小数位,并显示带有括号的负数。 这是在WPF应用程序中,但它适用于任何.net StringFormat用例。 例如: 2.0 – > 2.00 -2.0 – >(2.00) 0.01 – > 0.01 -0.01 – >(0.01) 0.001 – > 0.00 -0.001 – >(0.00) 最后一个,一个非常小的负数舍入到零,是问题所在。 我仍然希望括号表示它是否定的。 我的第一个版本是字符串格式如下: {0:#,##0.00 ;(#,##0.00)} 这不起作用,因为它在应用开关正/负之前对数字进行舍入,因此认为0.00不是负数。 然后我尝试了这个,将括号逻辑分成它自己的格式块,在数字之前和之后: {0:;(}{0:#,##0.00 ;#,##0.00}{0:;)} 然而,奇怪的是,这表现出与原始示例相同的行为。 它适用于-0.01,但仍然不显示-0.001的括号。 不知何故,第一个和最后一个令牌必须接受中间数字显示令牌的舍入行为。 有没有人有关于如何格式化的想法,所以它按我想要的方式工作?

如何在c#中格式化1700到1’700和1000000到1’000’000?

我喜欢格式化数学中的所有数字。 是否有预定义的函数或者是否可以使用子字符串和替换? 编辑:我的文化是de-ch 最好的祝福