Tag: 字符串格式

不能在XAML绑定的StringFormat中使用撇号?

我正在尝试使用StringFormat在一个绑定到TextBlock的值周围插入叛逆(撇号?): 但是,我得到一个编译错误: MarkupExtension中的名称和值不能包含引号。 MarkupExtension参数’MyValue,StringFormat =’值为'{0}”}’无效。 我确实注意到它确实适用于引号: 这是StringFormat的错误吗?

将TimeSpan格式化为mm:ss表示正负TimeSpans

我正在寻找.net 3.5中的解决方案我写了以下工作解决方案: private string FormatTimeSpan(TimeSpan time) { return String.Format(“{0}{1:00}:{2:00}”, time < TimeSpan.Zero ? "-" : "", Math.Abs(time.Minutes), Math.Abs(time.Seconds)); } 但我的问题是:有更好的方法吗? 也许更短的地方,我不需要辅助function。

C#如何在不进行舍入的情况下将双精度数组格式化为一位小数

我需要将double值格式化为一个小数位而不进行舍入。 double value = 3.984568438706 string result = “”; 我试过的是: 1) result = value.ToString(“##.##”, System.Globalization.CultureInfo.InvariantCulture) + “%”; // returns 3.98% 2) result = value.ToString(“##.#”, System.Globalization.CultureInfo.InvariantCulture) + “%”; // returns 4% 3) result = value.ToString(“##.0”, System.Globalization.CultureInfo.InvariantCulture) + “%”; // returns 4.0% 4)(以下其他建议) value = (value / 100); result = String.Format(“{0:P1}”, Math.Truncate(value * 10000) / 10000); // […]

IFormattable.ToString无法正常工作hex格式

在尝试格式化为hex时,String.Format和IFormattable.ToString(format,value)提供了不同的结果。 使用IFormattable.ToString时如何获得正确的结果(格式,值) string format = “0x{0:X4}”; Console.WriteLine(string.Format(format, 255)); //prints- 0x00FF IFormattable formattableValue = (IFormattable)255; Console.WriteLine(formattableValue.ToString(format, null)); //prints- 25x{5:X4}

如何在String.Format中放入未处理(转义)的单词

我正在格式化日期: str = String.Format(“{0:MMM dm:mm”+yearStr+”}”, dt); 我想在“d”之后加上“at”这个词,但我不希望字符串格式化它。 我只想要“at”这个词。 我怎样才能做到这一点?

为什么.Net在String.Format中使用与默认Math.Round()算法不一致的舍入算法?

我注意到C#/ .NET中存在以下不一致之处。 我想知道为什么会这样。 Console.WriteLine(“{0,-4:#.0} | {1,-4:#.0}”, 1.04, Math.Round(1.04, 1)); Console.WriteLine(“{0,-4:#.0} | {1,-4:#.0}”, 1.05, Math.Round(1.05, 1)); Console.WriteLine(“{0,-4:#.0} | {1,-4:#.0}”, 1.06, Math.Round(1.06, 1)); Console.WriteLine(“{0,-4:#.0} | {1,-4:#.0}”, 1.14, Math.Round(1.14, 1)); Console.WriteLine(“{0,-4:#.0} | {1,-4:#.0}”, 1.15, Math.Round(1.15, 1)); Console.WriteLine(“{0,-4:#.0} | {1,-4:#.0}”, 1.16, Math.Round(1.16, 1)); Console.WriteLine(); Console.WriteLine(“{0,-4:#.0} | {1,-4:#.0}”, 1.04, Math.Round(1.04, 1, MidpointRounding.AwayFromZero)); Console.WriteLine(“{0,-4:#.0} | {1,-4:#.0}”, 1.05, Math.Round(1.05, 1, MidpointRounding.AwayFromZero)); Console.WriteLine(“{0,-4:#.0} […]

如何为字符串格式提供自定义字符串占位符

我有一个字符串 string str =”Enter {0} patient name”; 我正在使用string.format来格式化它。 String.Format(str, “Hello”); 现在,如果我想要从某些配置中检索患者,那么我需要将str更改为”Enter {0} {1} name” 。 因此它将用第二个值替换{1}。 问题是我想要{1}而不是{1}其他格式的东西,比如{pat} 。 但是当我尝试使用时,它会抛出一个错误。 我想要一种不同格式的原因是我需要改变很多文件(可能包含{0},{1}等)。 所以我需要一个可以在运行时替换的自定义占位符。

如何将double格式化为字符串并在必要时仅显示十进制数字?

我的代码如下: lblFranshizShowInvwNoskhehEdit.Text = string.Format(“{0:n}”, (double)(int.Parse(drDarman[“FranshizDarsad”].ToString()) * Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text)) / 100); 但是{0:n0}字符串格式强制标签的文本不具有十进制数字, {0:n}字符串格式强制标签的文本具有2个十进制数字(默认)。 在我的场景中,我只想在必要时使用十进制数字/没有舍入它们/我该怎么做?