1

小数の有効数字 4 桁目に値があるかどうかを確認したい。

//3 Significant figures
var val = 1.015;

//4 Significant figures
var val2 = 1.0155;

4 番目の重要な場所に値があるかどうかをテストするにはどうすればよいですか。

4位にゼロ以外の値があるかどうかに応じて、条件付きで小数点以下3桁または4桁を表示したい。

これを行う最善の方法は何ですか?

この方法は機能しますか?

if((val * 10000) % 10 != 0) ...
4

4 に答える 4

1

カスタムフォーマット文字列でこれを行うことができます:

double d = 1.2340;
string strDouble = d.ToString("0.000#");
于 2013-11-26T00:27:37.037 に答える
0

ばかげた答えは次のようになります:.文字列内の の場所を見つけてから、その場所 +4 を確認します。

もっと深刻なのは、ダブルフォーマットオプションを見てください:)

この double のフォーマットを使用できます

//       using the   F4:                    1054.3224

文字列の最後のインデックスが 0 の場合は、部分文字列を使用して切り取ります。


あなたの最後の編集(if((val * 10000) % 10 != 0) ...)の時点で、はい、うまくいくはずです... Sudhakarは彼の答えで同じことを提案しました。

おそらく、どのソリューションを使用しても、それを int を返すヘルパー メソッドに配置する必要があります。そうすれば、それをコードで使用して、読みやすさと再利用性を向上させることができます :)


私が推測する最も単純なMarksソリューションを使用してください。

double d = 3.40;
Console.Out.WriteLine("d 0.0: {0}", d);                     // 3.4
Console.Out.WriteLine("d 0.0: {0}", d.ToString("0.0"));     // 3.4
Console.Out.WriteLine("d 0.00: {0}", d.ToString("0.00"));   // 3.40
Console.Out.WriteLine("d 0.0#: {0}", d.ToString("0.0#"));   // 3.4

の後に 3 桁または 4 桁しか.ない場合は、上記の最初の出力からわかるように、デフォルトが切り捨てられて削除されることに注意してください。

于 2013-11-26T00:14:20.717 に答える