首页 > 解决方案 > C#:如何将十进制转换为字符串而不转换为指数表示

问题描述

例如,我有一个包含一些值的对象数组。它可以是十进制、双精度、整数或字符串。 object[] oo = {0.000278121, 0.000078125m, "Hello",1}; 例如,当将此值转换为字符串时,第二个值变为 7.8125E-05。但是第一个值保持在数组中。那么如何区分这些类型的解析逻辑,并以相同的格式解析所有十进制值呢?完整代码:

object[] oo = {0.000278121, 0.000078125,"Hello",1};
string[] ss = oo.Select(x => x.ToString()).ToArray();
Console.WriteLine(string.Join("|",ss)); // 0.000278121|7.8125E-05

标签: c#objectdecimal

解决方案


首先,这不是一个decimal,而是一个double0.000278121m, 0.000078125m如果你想要decimals,请使用。

要强制使用没有指数的全长字符串表示形式,请使用.ToString("0.#################")double。使用小数,默认情况下会这样做,.ToString()因为您可以正常工作。


推荐阅读