是否有任何方法我可以指定一个标准或自定义数字格式字符串总是输出符号,是+ve或-ve(尽管它应该为零做什么,我不确定!)
是的,你可以。 有条件格式。参见MSDN中的条件格式
eg:
string MyString = number.ToString("+0;-#");
用分号分隔的每个部分代表正数和负数
or:
string MyString = number.ToString("+#;-#;0");
如果你不想让0带正号。
你也可以在string.Format();格式字符串用冒号(':')与索引分隔。
var f = string.Format("{0}, Force sign {0:+#;-#;+0}, No sign for zero {0:+#;-#;0}", number);
对于数字{+1,-1,0},得到:
1,力符号+1,0 +1没有符号 -1,强制符号-1,零没有符号-1 0,强制符号+0,0没有符号
也可以使用插值字符串来代替字符串。格式以获得相同的结果:
var f = $"{number}, Force sign {number:+#;-#;+0}, No sign for zero {number:+#;-#;0}";
与其他答案相反,如果你想获得+1,-1,+0(对于参数1,-1,0),你需要使用以下格式:
String.Format("{0:+#;-#;+0}", 0)); // output: +0
or
String.Format("{0:+0;-#}", 0)); // output: +0
如果你只使用+#;-#,它将为0显示+(而不是+0)。
“#”自定义说明符(在https://msdn.microsoft.com/en-us/library/0c899ak8.aspx)
请注意,此说明符永远不会显示不是有效数字的零,即使零是字符串中唯一的数字。只有当它是所显示数字中的有效数字时,它才会显示0。
同时请记住,如果你需要任何十进制精度,你需要这样指定它:
String.Format("{0:+0.##;-#.##}", 0)); // output: +0
或者,如果你不想总是出现0,像这样:
String.Format("{0:+0.00;-#.00}", 0)); // output: +0.00
对于任何类型的数值表达式:
+###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;-###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;0
在三种情况下使用三个部分:阳性;阴性;零
这个例子的其他方面:
Zero is not signed. You could have it show as anything, such as "zero". Absolute values less than one have a leading 0 before the decimal point. Adjust to taste. Number of digits is for the largest and smallest absolute decimal values. Adjust to taste. Decimal point character is culture-specific. .NET substitutes. Grouping separators are optional. The character is culture-specific. .NET substitutes. (The positions are also culture-specific but that's only controlled by your format string.) You also use any other character except the special characters for Format (which include , . # 0).
我不能评论,所以我在这里做一个回答(坚果声誉系统....)
你可以使用number.ToString("+0;-#")很好地产生UTC字符串时间格式
这里显示在PowerShell代码中
"$([System.DateTime]::Now.ToString('HH:mm:ss.fff'))$($([System.TimeZoneInfo]::Local.GetUtcOffset([System.DateTime]::Now).TotalMinutes.ToString('+0;-#')))"
谢谢@gcores https://stackoverflow.com/users/40256/gcores
推荐文章
- 无法解析类型为“Microsoft.AspNetCore.Http.IHttpContextAccessor”的服务
- 在ASP中选择Tag Helper。NET Core MVC
- 如何在没有任何错误或警告的情况下找到构建失败的原因
- 跨线程操作无效:控件“textBox1”从创建它的线程以外的线程访问
- Visual Studio弹出提示:“操作无法完成”
- 否ConcurrentList<T>在。net 4.0?
- 在c#中解析字符串为日期时间
- 由Jon Skeet撰写的《Singleton》澄清
- 自定义数字格式字符串始终显示符号
- 单元测试无效方法?
- Post参数始终为空
- 使用Moq验证方法调用
- string.ToLower()和string.ToLowerInvariant()
- 如何为一个或枚举删除一个项目?
- 检查instance是否属于某个类型