如何在不替换小数的情况下将小数转换为字符串?

时间:2012-05-02 23:56:10

标签: c#

我有一个对象CellData,等于-0.000009482102880653542

我希望在将其导出为.csv文件时按原样显示。为此,我必须将对象转换为字符串。

output = CellData.ToString();
output = string.Format("{0}", CellData);

以上两种情况导致output-9.48210288065354E-06。我希望将output作为-0.0000094821028806535423(带小数)返回。

无论如何我能让这个工作吗?

2 个答案:

答案 0 :(得分:1)

如果您将数字存储为十进制,它将以非科学(正常)表示法输出。根据数据的来源,您可能需要转换为double:

double myNumber = -0.0000094821028806535423;
Object CellData = new Decimal(myNumber);

(给出-0.00000948210288065354),或者你可以直接使用十进制:

Object CellData = -0.0000094821028806535423m;

如果你从double转换为double,则结果不太精确,因为double不能准确表示所有数字,并且你对它们执行的计算越多,它们可能会从精确结果中得到进一步的结果。

如果数字来自您的代码而您不需要对其执行任何计算,您也可以直接将其存储为字符串。

答案 1 :(得分:-1)

尝试不使用

output = string.Format("{0}", CellData);

只留下

output = CellData.ToString();