将指数编号转换为字符串

时间:2013-06-22 04:21:19

标签: c#

我使用以下代码将指数数字转换为字符串。它正在部分工作。 请帮我这样做。

这是我的指数是4.00658E + 16 //文字格式'40065812120130567'

以下代码将此数字转换为40065812120130600.有时它没有转换最后两位数字。请帮我解决这个问题。

 decimal device;
 string dvc_id = Convert.ToString(dt.Rows[i][4]);//dt.Rows[i][4]

 decimal.TryParse(dvc_id, NumberStyles.Any, CultureInfo.InvariantCulture, out device);
 dvc_id = device.ToString();

3 个答案:

答案 0 :(得分:1)

您说您正在使用的号码4.00658121201306E+1640065812120130567不同。最后两位数字被删除,因为指数形式没有这些数字作为数字的一部分。

最后两位数字根本不存储在该数字中。所有指数表示法都是基本上告诉小数点应该在哪里。你看到的就是你得到的价值的精确度,并且你不会在六个之后给程序任何数字。因此,在六点之后它不会给你任何数字。

答案 1 :(得分:0)

您可以尝试以下代码

var num = Decimal.Parse("4.00658E+16", System.Globalization.NumberStyles.Float);

答案 2 :(得分:0)

建议使用BigInteger类:

var number = BigInteger.Parse("400658121201306000000000000");