首页 > 解决方案 > 将十进制转换为双精度返回科学计数法

问题描述

我正在从 Excel 文件中读取数据,数据值是 0.0000000001。当它从 C# 中读取时,该值返回为 1E-10。单元格值为row.Cells[2].Value = 1E-10

我尝试从其他帖子中首先转换为小数:

decimal h1 = Decimal.Parse(row.Cells[2].Value.ToString(), System.Globalization.NumberStyles.Any);

h1 = 0.0000000001正如预期的那样。

我需要双倍的价值,所以我做了:

Double val1 = Decimal.ToDouble(h1);

val1现在回到 1E-10

如何将值保持为 double = 0.0000000001?

请测试以下代码片段以说明问题所在:

十进制 t1 = Decimal.Parse("1E-10", System.Globalization.NumberStyles.Any); 双 t2 = Convert.ToDouble(t1);

您将看到 t1 = .0000000001 和 t2 = 1E-10

标签: c#data-conversion

解决方案


1E-10是相同的0.0000000001

我还没有测试过,但也许这会有所帮助:

string variable = $"{val1:N10}";


推荐阅读