Tag: 字符串格式化

C#字符串格式化和填充

看起来这应该是直截了当的,但我无法做到正确。 我查看了http://idunno.org/archive/2004/14/01/122.aspx以供参考。 示例:我想打印一个double值表,每个double输出具有3个十进制精度,并占用10个空格(左对齐)。 从概念上讲,我尝试过这样的东西,但它只适用于精确的OR填充,而不是两者: foreach(line in lines) { foreach (double val in line) { Console.Write(“{0:0.000,-10}”, val); } Console.WriteLine() } 更新:我可以在非常简单的场景中使用padleft / padright,如果我有更复杂的输出它变得不是很简洁。 是否有类似于sprintf的东西?

格式化数字以始终具有符号和小数点分隔符

我想将任何数字(整数或实数)格式化为字符串表示forms,该字符串表示forms始终具有符号 (正数或负数)和小数点分隔符 ,但不包含尾随零。 一些样品: 3.14 => +3.14 12.00 => +12. -78.4 => -78.4 -3.00 => -3. 是否可以使用默认的ToString()实现之一,或者我是否需要自己编写?

如何格式化小数而不尾随零

我刚才知道小数点会以某种方式记住存储一个数字需要多少trailaing零。 换句话说:它会记住分数的大小。 例如: 123M.ToString() ==> resuls in: 123 123.00M.ToString() ==> resuls in: 123.00 123.450M.ToString() ==> resuls in: 123.450 我正在寻找一个格式化字符串或另一个技巧来摆脱那些“不需要的”尾随零,但保持有效数字。 所以: 123M.ToString() ==> resuls in: 123 123.00M.ToString() ==> resuls in: 123 123.450M.ToString() ==> resuls in: 123.45 删除新字符串末尾的零对我来说不是一个真正的选择,因为那时我必须找出字符串是否包含一个分数,如果是,还必须删除可选的’。’。 或’,’取决于文化等。

可以在C#格式字符串中定义最大字符数,例如C printf吗?

没找到怎么做。 我发现的或多或少就是这个( http://blog.stevex.net/string-formatting-in-csharp/ ): 除了它的对齐之外,字符串中确实没有任何格式。 对齐适用于在String.Format调用中打印的任何参数。 样本生成 String.Format(“->{1,10} Hello{1,-10}Hello <-" (right padded to 10)

是否有一个C#函数将64位“无符号”值格式化为其等效二进制值?

要将数字格式化/显示为等效的二进制forms(在C#中),我总是简单地调用: Convert.ToString(myNumber, 2); 今天,我刚刚意识到我一直在调用的.ToString()重载不支持大于9223372036854775807的值。注意.ToString()重载的签名是: .ToString(long, int) 。 其中“long”是64位有符号值,最大值为9223372036854775807。 换句话说,使用C#,当我运行它时: Convert.ToString(9223372036854775808,2); 我收到此exception消息并不奇怪(由于签名): ‘System.Convert.ToString(object,System.IFormatProvider)’的最佳重载方法匹配有一些无效参数 – 参数2:无法从’int’转换为’System.IFormatProvider’ 我的问题:是否有.NET函数允许我们将大于9223372036854775807的值转换为等效的二进制格式?

在Binding中使用StringFormat显示带空格的Hex值

我无法弄清楚如何使用StringFormat显示hex: 08 A4 23 F5 具体来说,我想要每2个字符后面的空格。 我这样做的时候: Text=”{Binding MyIntValue, StringFormat={}{0:x}}” 它看起来像这样: 08A423F5 我的备份计划是在绑定上使用转换器,但我想知道是否可以使用StringFormat来完成它。

如何生成“人类可读”字符串来表示TimeSpan

我有一个TimeSpan表示客户端连接到我的服务器的时间。 我想将TimeSpan显示给用户。 但我不想过于冗长地显示这些信息(例如:2小时3分钟32.2345秒=太详细了!) 例如:如果连接时间是…… > 0 seconds and 0 Seconds > 1 minute and 0 Minutes, 0 Seconds > 1 hour and 0 Hours, 0 Minutes > 1 day —–> 0 Days, 0 Hours 当然,在数字为1(例如:1秒,1分钟,1小时,1天)的情况下,我想使文本单数(例如:1秒,1分钟,1小时,1天) 。 无论如何,如果没有一组巨大的if / else子句,是否可以轻松实现这一点? 这是我目前正在做的事情。 public string GetReadableTimeSpan(TimeSpan value) { string duration; if (value.TotalMinutes < 1) duration = value.Seconds + […]

C#字符串格式表示小数和小时的小时和分钟

是否有一个简单的字符串格式,它将采用小数表示小时和小时的分数,并将其显示为小时和分钟? 例如:5.5格式化显示5小时30分钟。 我很乐意自己编写代码,但如果可用的话,我更愿意使用现有的function

string.Format在运行时因整数数组而失败

考虑string.Format()其参数是一个字符串,以及在重载列表中的一个object[]或许多对象。 该声明成功: string foo = string.Format(“{0} {1}”, 5, 6); 就像这样: object[] myObjs = new object[] {8,9}; string baz = string.Format(“{0} and {1}”, myObjs; 和字符串数组一样: string[] myStrings = new string[] {“abc”, “xyz”}; string baz = string.Format(“{0} {1}”, myStrings); 似乎整数,当单独指定时,可以加框或强制类型object ,而object又被强制转换为字符串。 此语句在运行时失败。 int[] myInts = new int[] {8,9}; string bar = string.Format(“{0} and {1}”, myInts); 索引(从零开始)必须大于或等于零且小于参数列表的大小。 为什么不能或不能将int数组强制或装箱到object[]或string[] […]

String.Format中{0}的含义是什么?

例如,在以下示例中: string commandText = string.Format(“Select * from {0}”, filename); 以上是如何工作的?