我尝试将Double
转换为String
,我需要启用往返R
和小写指数表示法。我查看了NumberFormatInfo
,但它似乎没有定义指数符号。
我知道x.ToString("R").ToLower()
,但如果有的话,我更喜欢直接的做法。
我检查的参考文献:
答案 0 :(得分:0)
double value = 12345.6789;
//Roundtrip
Console.WriteLine(value.ToString("R")); // Result: 12345.6789
//Lowercase "e" denotes lowercase exponent symbol
Console.WriteLine(value.ToString("e")); // Result: 1.234568e+004
//Likewise uppercase "E" denotes uppercase exponent symbol
Console.WriteLine(value.ToString("E")); // Result: 1.234568E+004
//add precision after the "e"
Console.WriteLine(value.ToString("e8")); // Result: 1.23456789e+004
//Variable Precision
int Precision = value.ToString("R").Replace(".", "").Length - 1;
Console.WriteLine(value.ToString("e" + Precision.ToString())); //Result: 1.23456789e+004
https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#EFormatString