c# - 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
解决方案
首先,这不是一个decimal
,而是一个double
。0.000278121m, 0.000078125m
如果你想要decimal
s,请使用。
要强制使用没有指数的全长字符串表示形式,请使用.ToString("0.#################")
double。使用小数,默认情况下会这样做,.ToString()
因为您可以正常工作。
推荐阅读
- corda - 在 Flows 中直接访问网络 API
- unity3d - 如何在 Unity3D 上检测附加构建模式?
- c++ - 0xC0000005:访问冲突读取位置 0xCDCDCDCD
- python - “不支持的图像对象”,使用 Tesseract
- sql - windows10中的sqlcmd脚本访问数据后停止运行
- python - KeyError 在我转换数据类型时出现,尽管我在数据框中有该列
- .htaccess - 帖子/类别 url 重写 htaccss 相同的 url 级别
- c# - 未在面向 .NET Framework 的 .NET 标准项目中加载的调试符号
- asp.net - 在asp,net mvc中为每个循环嵌套的行和列打印列表
- xml - Powershell xml根据父信息选择节点