c# - Convert.ToSingle(string) C# 转换歧义

标签 c# .net

我有这个代码:

string x = "-0.228469369833477";

Single s = Convert.ToSingle(x);

Console.WriteLine(s);

控制台输出:-2,284694E+14。

我该怎么做才能让它输出:-0.228469369833477?

最佳答案

以原始形式输出数字:

var s = -0.228469369833477;
Console.WriteLine(s.ToString("0.#######################"));

请注意 s 可能是 double,而不是 single。通过使用 single,您很可能会丢失数字。要获得足够的精度来表示所有数字,请改用 Convert.ToDouble()

如其他答案所述,为确保数字在您的语言环境中得到正确解析,请使用 CultureInfo.InvariantCulture

decimal 将为您提供 28-29 位有效数字的精度,精度更高,并且没有科学记数法问题。

延伸阅读
Custom Numeric Format Strings

关于c# - Convert.ToSingle(string) C# 转换歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35944384/

相关文章:

c# - 使 C# 代码在 .NET < 4 中后期绑定(bind)的侵入性最小的方法是什么?

.net - 要添加哪些计数器 (PerfMon) 来查找 C# WCF Web 服务中的性能问题?

c# - 使用 linq where 删除 foreach 内部

java - Microsoft 和 Oracle/Sun 技术之间是否存在等效性?

c# - 动态参数的问题

c# - 我应该如何在 C# 中从 C++ 转换 VAriant

c# - 以编程方式停止 DTS 包(使用 C#)

c# - 附加属性或行为时,如何访问 xamarin 表单元素背后的 native 控件?

c# - 使用 Visual C# .NET 自定义表单设计器

C#向Excel工作表添加内容