是否有任何方法我可以指定一个标准或自定义数字格式字符串总是输出符号,是+ve或-ve(尽管它应该为零做什么,我不确定!)
当前回答
注意,当使用条件格式时,负数不会自动获得符号。你需要做的
string MyString = number.ToString("+#;-#;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).
是的,你可以。 有条件格式。参见MSDN中的条件格式
eg:
string MyString = number.ToString("+0;-#");
用分号分隔的每个部分代表正数和负数
or:
string MyString = number.ToString("+#;-#;0");
如果你不想让0带正号。
注意,当使用条件格式时,负数不会自动获得符号。你需要做的
string MyString = number.ToString("+#;-#;0");
推荐文章
- 我如何使一个方法的返回类型泛型?
- 何时处理CancellationTokenSource?
- 如何获取正在执行的程序集版本?
- AutoMapper vs valueinjector
- 为什么控制台不。Writeline,控制台。在Visual Studio Express中编写工作?
- 什么是.NET程序集?
- 字符串不能识别为有效的日期时间“格式dd/MM/yyyy”
- 函数应该返回空对象还是空对象?
- 如何转换日期时间?将日期时间
- 如何在c#中连接列表?
- 在c#中引用类型变量的“ref”的用途是什么?
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- c#中有任何连接字符串解析器吗?
- 如何将python datetime转换为字符串,具有可读格式的日期?