2017-10-09 2 views
-1

Doubleを文字列として出力する必要がありますが、小数点以下の桁数がわからないため、できるだけ多くの準備をしなければなりません。今、私はこの醜い解決策を使用しています:小数点が不明な文字列としてDoubleを出力する

Double dubs = 0.000157; 

NumberFormat formatter = new DecimalFormat(
    "##.########################################################################################"); 
System.out.println(formatter.format(dubs)); 
+2

2倍には、最初に多くの小数を入れることはできません。 – SLaks

+4

なぜそれを文字列に変換する必要がありますか?なぜそれを印刷しないのですか? – Mureinik

+0

科学的表記で印刷されており、それが私の要件を満たしていないため、 –

答えて

0

ここに試してみてください。私はこれがあなたが言っていることだと思います。答えは一番下にあります。ここで

Number of decimal digits in a double

私が何を意味するのかです。

double d= 234.12413; 
String text = Double.toString(Math.abs(d)); 
int integerPlaces = text.indexOf('.'); 
int decimalPlaces = text.length() - integerPlaces - 1; 

それからちょうどあなたが変換なしでこれを行うことができ、それらを

String xmlString = integerPlaces.toString() + "." + decimalPlaces.toString(); 
+0

リンクのみの回答を投稿しないでください。 – Steampunkery

+0

まだコメントできません。他の人の回答を繰り返すべきですか? – Sinil

+2

質問を重複としてフラグを立てます。 – azurefrog

1

を連結:

public class codesnippets { 

public static void main(String[] args) 
{ 
    Double dubs = 0.000157; 
    System.out.printf("%f", dubs); 
} 

} 

あなたはまた、

Double dubs = 0.000157; 
String dubs_format = String.format("%f", dubs); 
System.out.println(dubs); 

EDITを使用することができます:どうやらそこにあります"%f"を使用した場合の精度低下フォーマット文字列。これが当てはまる場合は、 "%.10f"を使用してください。

+0

それは二重ではないので%lfですか? – Tyler

+0

@タイラーこれはJavaであり、C言語ではありません – Steampunkery

+0

OKですが、明確にするにはXML文書に配置するには実際のStringオブジェクトが必要です。 –

0

これはSteampunkeryの考えに基づいて動作しているようです。キャッチは、私は私が私がはっきりしていないことを実感している実際のStringが必要だったということでした。

String dubString= String.format("%f", dubs); 
System.out.println(dubString); 
関連する問題