我从数据库中获取数字。有些存储在数据库中double
,有些存储为string
。
我想要做的是计算decimal number
个字符所以:345.34938会给我5
的结果。
正如我所说,我的一些double
来自数据库double
,有些来自string
。我想知道casting
string
号到double
时是否会出现任何问题,因此在尝试count
小数时会给我错误的结果。
我想我应该没事,但我担心在某些情况下,当他们从string
投出时,我最终会收到错误的双号(考虑拥有1.9999999而不是2.0,类似于那)...
将我的号码从string
投射到double
会在我的应用程序中存储为double
时会给我带来奇怪的结果,是否存在任何风险?我在那附近活泼吗?
答案 0 :(得分:1)
考虑使用string
方法将System.Decimal
表示转换为decimal.Parse
。因为对于decimal
,数字的值与其字符串表示之间的对应关系要好得多。此外,它可以处理更多的数字。
System.Decimal
会保留字符串中的尾随零(如"2.7500"
),而System.Double
则不会。
但如果您的字符串总共不超过15位数(包括小数点前的数字.
),那么使用double
的方法可能会有效。但是代表的确切数字几乎总是与“你看到的”double
不同,因此小数字的数量应理解为double.ToString()
显示的内容......
也许直接使用字符串更容易,比如
int numberOfDecimals = myString.Length - (myString.IndexOf('.') + 1);