1

データベースから数値を取得しています。一部はdoubleデータベースに保存され、一部は として保存されstringます。

私がやりたいのは、文字数を数えるdecimal numberことです.345.34938は5.

私が言ったように、私のいくつかは asdoubleデータベースから来ておりdouble、いくつかは as から来ていますstring。数値を にすると何らかの問題が発生する可能性があるのではないかと考えているためcasting、小数を計算すると間違った結果が得られます。stringdoublecount

私は大丈夫だと思いますが、状況によっては、からキャストされたときに間違った二重の数字を受け取ることになるのではないかと心配していますstring(2.0の代わりに1.9999999を持つことを考えているなど)...

string私の番号をからにキャストすると、アプリケーションのdoubleように保存すると奇妙な結果が得られるリスクはありますか? double私はその周りで元気ですか?

4

1 に答える 1

1

メソッドを使用してstring表現を に変換することを検討してください。aの場合、数値の値とその文字列表現の間の対応がはるかに優れているためです。また、より多くの桁数を処理できます。System.Decimaldecimal.Parsedecimal

ASystem.Decimalは、文字列に存在する末尾のゼロ ( など"2.7500") を保持しますが、 aは保持しSystem.Doubleません。

ただし、文字列の合計が 15 桁を超えることがない場合 (小数点の前の桁を含む.)、アプローチdoubleはおそらく機能します。doubleしかし、表現される正確な数は、ほとんどの場合、「あなたが見るもの」とは異なるdouble.ToString().

次のように、文字列を直接使用する方が簡単かもしれません

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