C#でdouble値を有効桁数4桁の文字列に変換したいのですが、ToString("G4")を使って変換すると、後ろに続く「0」が省略されてしまい、有効桁数4桁の表現としては正しくない場合があります。
CやC++で、printf("%.4G",...)を使っても同じ結果なのですが、printf("%#.4G",...)とすると正しく変換されます。
C#にこれに該当するオプションはないのでしょうか?
発生している問題
C#
1double value = 0.0012997; 2value.ToString("G4");
上記コードでは、「0.001300」となるべきところが、「0.0013」と出力されます。
試したこと
C++
1double value = 0.0012997; 2CString str; 3str.Format("%.4G", value); // "0.0013"と出力される。 4str.Format("%#.4G", value); // "0.001300"と出力される。
C#にも同じオブションがあると良いのですが、ToStringの仕様を何度読んでも見つかりませんでした。
もし自前で作る必要があるようでしたら、どこかにサンプルがあれば教えていただけると有り難いです。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/11 00:39
2019/09/11 01:13
2019/09/13 01:22