如何解决在C#中没有指数的float.Parsestring
非常简单的情况,但是我完全被困在这里。所以,我有下一个方法:
public static float? ToSingleNullable(string value)
{
if (string.IsNullOrEmpty(value))
return null;
else
{
float number = 0;
if (float.TryParse(value,out number))
return number;
return null;
}
}
在出现大于19 999 999的情况下,则用float.TryParse
代替例如20000 012输出2e + 6或类似的值。如果进行反向转换,最多只能得到20000010。而且我无法预测会发生什么-20000或20000 010。
通常,如何使当前方法返回的浮点数完全以十进制表示?
网络上有很多.ToString()
的示例,但是我找不到关于反向转换的任何信息。更改为decimal/double
不起作用-该方法必须返回完全浮点数,因为我们有100500多行代码,这些代码使用可为空的float
。
该字符串由用户以“人类形式”输入。所以,我们得到了这样的东西:
string str = "20100999";
float number = ToSingleNullable(str);
Console.WriteLine(number);//about 2е+6. When convert to string - 20 000 000
当声明变量时,我可以放入下一个代码:
float a = 20 100 100,b = 20 100 100f;
因此,第一个变量将转换为指数形式,但第二个变量将保持不变。我的方法需要类似的东西。
也许可以将string
解析为double/decimal
,然后转换为float?
,但我尝试过的所有方法都无效。尽管如此,方法始终返回指数表示法,这是不可接受的。
解决方法
我不太了解您的问题。 如果您真正搜索数字格式的字符串,则需要找到以下内容:Standard numeric format strings。
如果要查看十进制格式的浮点数,请使用.ToString(“ F”),并且将获得不带指数的数字。很简单。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。