c# – 具有最大字符的System.Double值

我正在测试double []数组的net xml序列化,所以我有兴趣知道什么是具有大多数字符的双重值,它是序列化的,所以我可以测试序列化数组的最大输出大小.

解决方法:

它应该是24.

double.MinValue.ToString("R").Length

double.ToString(string)

or “R”, which returns 15 digits if the number can be represented with that precision or 17 digits if the number can only be represented with maximum precision.

你有最多17位数,加1为符号,加1为小数分隔符加5为E xxx(double.MaxValue为1.7976931348623157E 308和double.Epsilon,最小值> 0,为4.94065645841247 E-324,所以形式为E [ – ] [0-9] {1,3}).

请注意,在技术上,在某些奇怪的语言中,

var str2 = double.PositiveInfinity.ToString("R");

可能会更长(因为字符串已本地化),但我希望您使用CultureInfo.InvariantCulture序列化您的数字!

但请记住,用户可以从控制面板改变他们的文化…类似于:

var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.NumberFormat.NegativeSign = "Negative";
culture.NumberFormat.NumberDecimalSeparator = "DecimalSeparator";
var str4 = double.MinValue.ToString("R", culture);

结果:Negative1DecimalSeparator7976931348623157E 308

出于这个原因,最好使用CultureInfo.InvariantCulture

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念