0

以下のコードを実行するときに、小数点以下の桁数を取得するために使用できるコード行が必要です。

double results = 1500 / 1000;


        txtview.setText("K " + resultsoldk);

結果にリマインダーも含める必要があります。

4

4 に答える 4

2

問題は、

 double results = 1500 / 1000;

では1.0なく、整数除算1.5を行っているためです。除算を行うときは、数値の少なくとも 1 つが浮動小数点数であることを確認してください。例えば:

// By adding .0 you make it a double literal instead of an int literal
double results = 1500.0 / 1000;
于 2012-12-04T10:53:30.333 に答える
1

String.format(...)メソッドを使用して、次のように文字列をフォーマットできます。

txtview.setText(String.format("K %f", resultsoldk));

ただし、これはあなたの場合には機能しません。2 つの整数を除算すると、結果は整数になります (剰余はありません)。その後、double に変換されますが (double に割り当てるため)、この時点で精度は既に失われています。整数を除算するに、少なくとも 1 つの整数を double に変換する必要があります。

double results = (double)1500 / 1000;

または、定数を使用する場合

double results = 1500.0 / 1000;

また

double results = 1500 / 1000.0;

あるいは

double results = 1500.0 / 1000.0;
于 2012-12-04T10:56:05.463 に答える
1

以下のように double を使用してキャストできます

  double results = (double)1500 / 1000;

また、DecimalFormat を使用して結果をフォーマットすることもできます

DecimalFormat df = new DecimalFormat("0.00##");
String formattedResult=df.format(results);
于 2012-12-04T10:53:14.243 に答える
0
String strResult = Double.toString(d);
strResult = strResult.replaceAll("\\d?\\.", "");

わかるかどうかわかりませんが、ドットの後の数字が必要な場合は、この正規表現を使用できます。

于 2012-12-04T11:01:02.443 に答える