Tag: string formatting

字符串格式:负/正浮点数

我怎样才能在C#中使用String.Format ,所以双打显示如下: example: ___-1.000 ____1.000 __100.123 -1000.321 _1000.214 等等… 其中_是空格( ” ” ); 我所能做的就是String.Format(“{0:F3}”, -123.321);

货币文化格式不适用于DataGridView列

我有2个DataGridViews(DGV),并且我都有我要格式化的货币列。 我写的代码似乎在一个中工作,但在另一个中则不起作用。 两个DGV都以这种方式设置:数据首先加载到DataTable中。 然后BindingSource链接到此DataTable。 最后,DGV将这个BindingSource对象用于他们的数据。 我在表单的Load事件中使用以下代码来自定义两个DGV的货币列: dataGridView.Columns[columnIndexHere].DefaultCellStyle.FormatProvider = CultureInfo.GetCultureInfo(“de-DE”); dataGridView.Columns[columnIndexHere].DefaultCellStyle.Format = String.Format(“c”) 似乎将一个DGV中的列格式化为另一个DGV。 此外,它的NOT工作的DGV在其父窗体中甚至没有那么多的function代码..我检查了代码和DGV的属性,看看我是否在其他地方更改格式,但是我什么都没发现.. 两个DGV加载数据的方式之间的唯一微小区别是,对于第一个DGV的DataTable(其中格式化工作),数据通过SELECT语句(通过我自己的函数)加载…在第二个DGV的DataTable(用于哪个格式化不起作用),我不从DB加载任何数据,而只是手动定义列(在DataTable中),因为在这种情况下用户需要输入数据.. 任何线索为什么格式化不能在第二个DGV上工作? 编辑:添加更多信息: 为了演示这个问题,我创建了一个新的C#winforms项目,在其上只添加了一个DataGridView,并将以下代码添加到Load事件中。 即使对于此代码,也没有进行货币格式化: DataTable dataTable = new DataTable(); dataTable.Columns.Add(“ColA”); dataTable.Columns.Add(“ColB”); dataTable.Columns.Add(“ColC”); dataTable.Rows.Add(“John”, 832.293, “London”); dataTable.Rows.Add(“Alice”, 32972978.20489, “Atlanta”); dataTable.Rows.Add(“Mark”, 9184793284739, “Tokyo”); BindingSource bindingSource = new BindingSource(); bindingSource.DataSource = dataTable; dataGridView1.DataSource = bindingSource; var format = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone(); format.CurrencySymbol = “Mn. “; […]

如何编译C#字符串插值?

我知道插值是string.Format()语法糖,但是当它与字符串格式化方法一起使用时,它是否有任何特殊的行为/识别? 如果我有一个方法: void Print(string format, params object[] parameters) 以下使用插值调用它: Print($”{foo} {bar}”); 以下哪个调用行最相当于字符串插值的编译结果? Print(string.Format(“{0} {1}”, new[] { foo, bar })); Print(“{0} {1}”, new[] { foo, bar }); 问题背后的推理:NLog等日志框架通常会延迟字符串格式化,直到确定实际写入日志消息为止。 一般来说,我更喜欢字符串插值语法,但我需要知道它是否会产生额外的性能损失。

C#String.Format与字符串中的curl括号

可能重复: 在String.Format中转义大括号'{‘ c#有一个String.Format方法,允许您格式化字符串,但插入带有标记{0} {1} 我试图创建一个简单的json字符串,需要大括号在字符串中,因此它打破格式化程序 String.Format(“{ foo:'{0}’, bar:'{1}’ }”, foo, bar); 在括号之前添加一个逃脱没有帮助 抛出一个exception,说我的字符串格式不正确,有人知道怎么解决这个问题吗?

使用string.Format(“{0:00}”格式化字符串

我刚接管了一些代码,我发现这个代码使用了很多。 它似乎取整数并创建一个看起来像“01”,“02”等的字符串。 我不确定的是这里使用的惯例。 为什么格式为{0:00}而不是{00} ? string.Format(“{0:00}”, int.Parse(testVal) + 1);

将扩展方法添加到字符串类 – C#

不知道我在这里做错了什么。 无法识别扩展方法。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using StringExtensions; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { RunTests(); } static void RunTests() { try { ///SafeFormat SafeFormat(“Hi There”); SafeFormat(“test {0}”, “value”); SafeFormat(“test missing second value {0} – {1}”, “test1”); SafeFormat(“{0}”); //regular format RegularFormat(“Hi There”); RegularFormat(“test {0}”, “value”); […]

String.Format(“{0:C2}”, – 1234)(货币格式)将负数视为正数

我使用String.Format(“{0:C2}”, -1234)来格式化数字。 它总是将数量格式化为正数,而我希望它变为$ – 1234

有没有办法以编程方式将VB6格式化字符串转换为.NET格式化字符串?

有谁知道VB6格式字符串的一个很好的参考? 有没有人知道从VB6格式化字符串到.NET字符串的转换器? 我正在努力将大型VB6代码库移植到.NET。 它是一个以数据库为中心的软件,数据库本身保存VB6格式字符串,稍后加载并用于显示数据库中的其他数据。 我的问题,就像这篇文章一样 ,是如何移植它。 但是,为该问题选择的答案不足以满足我的需求。 我依赖专门设计的库来向后兼容一种我专门雇用的语言,我感到很不舒服。