转换 ToString 时从指数中删除前导零
Remove leading zeros from exponent when converting ToString
假设我有一个双 n = 0.00000123456
在一种情况下,我可能想显示一位小数
n.ToString("E1") => "1.2E-006"
在另一种情况下,我可能想显示 4 位小数
n.ToString("E4") => "1.2346E-006"
但我不希望指数中有前导零,这些数字适用于有限 space 的轴。
我想看看“1.2E-6”和“1.2346E-6”:不错 - 没有前导零!
我读了 how can I remove zeros from exponent notation,我发现我可以分别使用 n.ToString("0.0E+0") 和 n.ToString("0.0000E+0")。
太好了,但是,考虑到我有一个整数变量 requiredDecimalPlaces 随时告诉我所需的小数位数,我是否必须创建此格式字符串一个循环,每次都加零?!这似乎很老套。如果这是这样做的方式,有人可以告诉我吗?但就像我说的,将我的变量 requiredDecimalPlaces(假设值为 4)转换为字符串“0.0000”,然后将 "E+0" 附加到末尾以创建“0.0000E+0”似乎过于复杂。
没有标准的数字格式可以做到这一点,因此您必须创建一个自定义格式。创建该格式的最简单方法如下。
number.ToString("0." + new string('0', decimalPlaces) + "E+0");
假设我有一个双 n = 0.00000123456
在一种情况下,我可能想显示一位小数 n.ToString("E1") => "1.2E-006"
在另一种情况下,我可能想显示 4 位小数 n.ToString("E4") => "1.2346E-006"
但我不希望指数中有前导零,这些数字适用于有限 space 的轴。
我想看看“1.2E-6”和“1.2346E-6”:不错 - 没有前导零!
我读了 how can I remove zeros from exponent notation,我发现我可以分别使用 n.ToString("0.0E+0") 和 n.ToString("0.0000E+0")。
太好了,但是,考虑到我有一个整数变量 requiredDecimalPlaces 随时告诉我所需的小数位数,我是否必须创建此格式字符串一个循环,每次都加零?!这似乎很老套。如果这是这样做的方式,有人可以告诉我吗?但就像我说的,将我的变量 requiredDecimalPlaces(假设值为 4)转换为字符串“0.0000”,然后将 "E+0" 附加到末尾以创建“0.0000E+0”似乎过于复杂。
没有标准的数字格式可以做到这一点,因此您必须创建一个自定义格式。创建该格式的最简单方法如下。
number.ToString("0." + new string('0', decimalPlaces) + "E+0");