定制的数字格式串始终显示的标志
-
20-08-2019 - |
题
是否有任何办法,我可以指定一个标准或定义的数字格式串一直出的标志,将它+已经或ve(尽管是什么它应该做的为零,我不知道!)
解决方案
是的,可以。 没有条件格式。请参阅 href="http://msdn.microsoft.com/en-us/library/0c899ak8.aspx" rel="noreferrer">条件格式
例如:
string MyString = number.ToString("+0;-#");
其中由分号分隔的每个部分代表正数和负数
或:
string MyString = number.ToString("+#;-#;0");
如果你不希望零到有一个加号。
其他提示
当心,使用条件格式负值不自动获得一个符号时。你需要做的。
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,没有迹象零+1点击 -1,力符号-1,没有迹象零-1点击 0,力符号0,没有迹象零0
您也可以使用内插的字符串而不是string.Format
以获得相同的结果:
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
或
String.Format("{0:+0;-#}", 0)); // output: +0
如果你只使用+#;-#
它将显示只是+
(未+0
)为0
<强>的 “#” 自定义说明符强>(在的https:// MSDN。 microsoft.com/en-us/library/0c899ak8.aspx )
请注意,这个说明符从未显示一个零这不是一个显著位数,即使是零字符串中的唯一的数字。它将显示零仅当它是在正在显示的数目的显著位。
也请记住,如果你需要任何小数精度,你需要这样的规定是:
String.Format("{0:+0.##;-#.##}", 0)); // output: +0
或者,如果你wan't零总是展现出来,这样的:
String.Format("{0:+0.00;-#.00}", 0)); // output: +0.00
对一个数字表达的任何类型:
+###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;-###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;0
使用三个部分为三种情况:正;负;零
其他方面的例子:
零没有签名。你可以拥有它显示为任何东西,例如"零"。
绝对值小于一个具有0领先前的小数点。调整的味道。
数量的数字是最大的和最小的绝对小数值。调整的味道。
小数点后的位数字是文化的特定的。.净的替代品。
分离器组都是可选的。字符的文化特有的。.净的替代品。(该职位也是文化特有的,但这仅仅通过控制你的字符串格式。) 你还有使用任何其他的性格除了特殊字符格式(其中包括.#0).