我想读取一个字符串,从字符串中获取一个特定的数字,将其乘以一个double,并用新的字符串数字替换旧的字符串。 乘法后,数字格式改变
示例:原始格式8.08000e + 14
乘法,假设两个,返回:1.616E + 15
我希望新号码具有旧号码的格式(可以是1.61600e + 15,例如可以使用String.Format完成),但为此,我需要获取旧格式数字第一(这种格式并不总是相同)。我怎样才能获得这种格式信息?
答案 0 :(得分:0)
这是一个相当黑客的方法:
假设您的原始格式是电子记谱法。您可以找到.
和e
之间的位数,然后再次使用转换编号进入电子记数法。
这是一个小例子:
string test = "4.08123000E+14";
//string test = "8.08000e+14";
double test_as_double = Convert.ToDouble(test);
test_as_double *= 2.0;
// find all digits between . and e or E
string old_format = System.Text.RegularExpressions.Regex.Match(test, @".\d+[e|E]").Value;
// take the amount of digits without the . and e
int number_of_digits = old_format.Length-2;
// create the new number-string with the old folmar
string new_old_Format = test_as_double.ToString("E" + number_of_digits.ToString(), CultureInfo.InvariantCulture);