6

double.Parseを使用する場合、変換している文字列から末尾の(重要でない)ゼロを文字列で削除するようです。double.Parseを小数点以下の桁数に保持したいのですが。たとえば、次のコードがあります。

tobereturned.MouseSensitivty = double.Parse(String.Format("{0:#.##}", tempstring[1]));
Debug.WriteLine("Converted " + String.Format("{0:#.##}", tempstring[1]) + " to " + tobereturned.MouseSensitivty);

次に、デバッガーは次のように書き込みます

4.00を4に変換

つまり、ダブルのように見えます。Parseここで何か怪しいことをしています。PS MouseSensitivityもdouble型であるため、文字列操作を実行できません。

4

4 に答える 4

4

あなたの質問は無意味です。ダブルスには、そもそも「小数点以下の桁数」がありません内部的には「数値の10進表現」のように見えるものは何も保存されません。実際、認識可能なテキストのように見えるものは内部に保存されません。

4.00は正確に4に等しいため、4を報告します。数値をテキストに変換するためのデフォルトの規則に従って、「小数部のない正確に4」という数値をテキストとして表示しています。

これを読んでください。はい、長くて難しいですが、この資料を実際に理解していなければ、浮動小数点の数値型を適切に使用することはできません。また、使用している言語も関係ありません。

于 2010-12-11T07:12:25.887 に答える
2

データ型はdouble単なる数値です。値を作成するために解析された文字列を追跡しません。その文字列表現は、.ToString()が呼び出されたときにのみ機能します。

于 2010-12-11T07:00:08.560 に答える
0

小数点以下2桁が常に必要であることがわかっている場合は、ゼロを右に埋めることができます。

希望する表示形式を追跡するのは、doubleタイプの仕事ではありません。

于 2010-12-11T06:55:15.193 に答える
0

Doubleは、冗長なゼロを格納しません。ビューまたはプレゼンテーション層で、表示したいことを示すようにフォーマットすることができます。例:String.Format( "{0:#。##}"、doubleVariable)

于 2010-12-11T07:00:39.257 に答える