部分分隔符和条件格式
可以根据值为正、为负还是为零来为字符串应用不同的格式化。为产生这种行为,自定义格式字符串可以包含最多三个用分号分隔的部分。下表描述了这些部分。
部分数目 |
说明 |
---|---|
一个部分 |
格式字符串应用于所有值。 |
两个部分 |
第一部分应用于正值和零,第二部分应用于负值。 如果要格式化的数字为负,但根据第二部分中的格式舍入后为零,则最终的零根据第一部分进行格式化。 |
三个部分 |
第一部分应用于正值,第二部分应用于负值,第三部分应用于零。 第二部分可以留空(分号间没有任何内容),在这种情况下,第一部分应用于所有非零值。 如果要格式化的数字为非零值,但根据第一部分或第二部分中的格式舍入后为零,则最终的零根据第三部分进行格式化。 |
格式化最终值时,部分分隔符忽略所有先前存在的与数字关联的格式设置。例如,使用部分分隔符时,显示的负值永远不带负号。如果您希望格式化后的最终值带有负号,则应明确包含负号,让它作为自定义格式说明符的组成部分。
下面的代码段阐释如何使用部分分隔符产生格式化字符串。
C# | |
---|---|
double MyPos = 19.95, MyNeg = -19.95, MyZero = 0.0; // In the U.S. English culture, MyString has the value: $19.95. string MyString = MyPos.ToString("$#,##0.00;($#,##0.00);Zero"); // In the U.S. English culture, MyString has the value: ($19.95). // The minus sign is omitted by default. MyString = MyNeg.ToString("$#,##0.00;($#,##0.00);Zero"); // In the U.S. English culture, MyString has the value: Zero. MyString = MyZero.ToString("$#,##0.00;($#,##0.00);Zero"); |
double d = 12.5684;
double d1 = -12.5684;
double d2 = 0;
string str = "#.##;#.#####;零";//string str = "0.##;0.#####;零";
textBox1.Text = d.ToString(str);//12.56
textBox1.Text = d1.ToString(str);//12.5684
textBox1.Text = d2.ToString(str);//零