如何防止Long / Int64 ToString()转换为指数格式?

时间:2015-08-07 18:17:07

标签: c# .net long-integer int64

运行.NET 4.6和x64构建选项。

No ToString()格式选项似乎适用于长度超过15位的数字,因为它将它们转换为指数格式。

到目前为止我尝试过:

long.ToString("#");
long.ToString("G");
long.ToString("0");
long.ToString("#,#");
long.ToString("0,0");

唯一可行的部分是:

long.ToString("0,0");  //Ex.) 5,149,673,432,170,230

但是,我更喜欢简单的数字。我不想使用:

String.Replace(",", "");

有什么建议吗?

编辑: 解决方案已经尝试过。的ToString(" 0&#34)

完全修复VS2015并清理我的解决方案。它现在按预期工作。

3 个答案:

答案 0 :(得分:4)

您可以使用" 0"格式。

long num = 1234567890123456789;
System.Diagnostics.Debug.WriteLine("Str=" + num.ToString("0"));

输出:Str = 1234567890123456789

答案 1 :(得分:1)

如果您确实获得了longulong,那么

string s = long.MaxValue.ToString() ;

返回预期的字符串"9223372036854775807"

虽然

string s = ulong.MaxValue.ToString() ;

返回预期的字符串"18446744073709551615"

确定您处理long而非某些浮点类型?

答案 2 :(得分:0)

OK

写道:

  

s1 = 9223372036854775806,s2 = 9223372036854775806