1

我正在从数据库中获取数字。有些存储double在数据库中,有些存储为string.

我想要做的是计算字符数decimal number:345.34938 会给我一个结果5

正如我所说,我double的一些来自数据库double,一些来自string. 我想知道当数字为 时是否会出现任何问题castingstring因此double在尝试count小数时给了我错误的结果。

我想我应该没问题,但我担心在某些情况下我最终会收到错误的双数string(考虑使用 1.9999999 而不是 2.0,诸如此类)......

string当存储在我的应用程序中时,将我的号码从to转换为double会给我带来奇怪的结果是否有任何风险double?我是不是很高兴?

4

1 回答 1

1

考虑使用该方法将string表示转换为。因为对于 a而言,数字的值与其字符串表示形式之间存在更好的对应关系。此外,它可以处理更多的数字。System.Decimaldecimal.Parsedecimal

ASystem.Decimal将保留字符串中存在的尾随零(如"2.7500"),而 aSystem.Double不会。

但是,如果您的字符串总数不超过 15 位(包括小数点前的数字.),您的方法double可能会奏效。但是所表示的确切数字几乎​​总是与带有 a 的“你所看到的”不同double,因此小数位数应理解为double.ToString()显示...

也许直接使用字符串更容易,比如

int numberOfDecimals = myString.Length - (myString.IndexOf('.') + 1);
于 2012-12-14T16:34:11.703 回答