c# - 将十进制转换为双精度返回科学计数法
问题描述
我正在从 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
解决方案
1E-10
是相同的0.0000000001
我还没有测试过,但也许这会有所帮助:
string variable = $"{val1:N10}";
推荐阅读
- c - 光线追踪器光漫射的问题
- django - 当我展开我的 UserAdmin 时,我在管理面板中收到一个错误(__init__() got an unexpected keyword argument 'region')
- java - android.widget.RelativeLayout 无法转换为 androidx.drawerlayout.widget.DrawerLayout
- azure-devops - 多项目的 Azure Devops CI 管道触发器
- r - 使用隔离列创建 ggplot
- ios - Swift SpriteKit 类结构的良好实践
- python - 将列值分组成对 - 熊猫
- r - 填充最可能的值 R
- javascript - 使用reduce函数汇总/计数数组
- perl - 将结果数据附加到 Parallel::ForkManager Perl 中的标量变量