使用.ToString(" E4")打印一个类似1.2345E + 012的数字。
如何在指数部分打印少一个数字。换句话说,打印1.2345E + 12.
谢谢!
答案 0 :(得分:3)
您可以使用带有E
指标的自定义格式字符串,该字符串采用最小位数:
double value = 1234567890000;
Console.WriteLine(value.ToString("0.####E+0"));
// 1.2346E+12
答案 1 :(得分:0)
您始终可以将“.ToString(”E4“)'存储在名为”output“的字符串中。然后逐个字符地打印“输出”,直到您在“输出”中读取“+”字符。如果它是“0”,请不要打印下一个字符,一直检查“0”,直到达到不等于(!=)“0”字符的内容,然后打印最后一个字符。
答案 2 :(得分:0)
尝试该代码:
var number = 1234567890000;
var exponential = number.ToString("E4");
var splitted = exponential.Split('+');
var result = splitted.Length == 2 ? $"{splitted[0]}+{Convert.ToInt32(splitted[1])}" : exponential;
它接受数字,计算指数字符串并删除所有前导零。
这是通过在+处分割来完成的(如果有的话,否则它不是必要的并且不会有任何前导零)并将字符串(其中零将被删除)转换为数字。由于数字未以前导零存储,因此将其转换回字符串会删除前导零。
如果要防止最后写入E+0
的情况,请检查转换后的字符串是否为0,如果是,请使用不带最后一个字符的分割字符串的第一部分。