2016-08-23 3 views
1

J#doubleの値は、小数点の後2桁(算術演算なし)のようにどのように書式設定しますか?Jでの小数点以下2桁の書式設定

double x = 3.333333; 
String s = String.Format("\rWork done: {0}%", new Double(x)); 
System.out.print(s); 

私はJ#Javaとほぼ同じだと思ったが、次Javaのコードでは、J#に異なる結果を与える:

double x = 3.333333; 
String s = String.format("\rWork done %1$.2f%%", x); 
System.out.print(s); 

J#はほぼ死んでサポートされていないので、私が使用しVisual J# 2005

+0

多分 '文字列S = String.Formatの( "行わ\のrWork:{0:D2}%"、xが));' C位 –

+0

@Bob_ように私はそれを試してみるだろう。これは 'C# 'でも動作することを知らなかった。私はたいてい 'String s = String.format(" \ rWork done {0:0.00}% "、x)'; – Matthias

+0

@Bob__動作しません。 – Matthias

答えて

1

String.format() APIはJavaで導入されました1.5Visual J ++またはVisual J#で使用することはできません。

問題には2つのアプローチがあります。 、両方のフォーマットにもかかわらず、二重与えられたために働くことを

import java.text.MessageFormat; 

/* ... */ 

final double d = 3.333333d; 
System.out.println(MessageFormat.format("{0,number,#.##}", new Object[] {new Double(d)})); 
System.out.println(MessageFormat.format("{0,number,0.00}", new Object[] {new Double(d)})); 

注:1.1 APIのJavaを使用して

  1. (任意ののJavaJ ++のJ#で動作します) 0.00#.##の間に違いがあります。

  2. .NET APIを使用します。ここでは何が必要ないC#のコードは、です:

    using System; 
    
    /* ... */ 
    
    const double d = 3.333333d; 
    Console.WriteLine(String.Format("{0:F2}", d)); 
    Console.WriteLine(String.Format("{0:0.00}", d)); 
    Console.WriteLine(String.Format("{0:0.##}", d)); 
    

    J番号に翻訳同じコード:あなたはSystem.Doubledouble引数をキャストする必要が

    import System.Console; 
    
    /* ... */ 
    
    final double d = 3.333333d; 
    Console.WriteLine(String.Format("Work done {0:F2}%", (System.Double) d)); 
    Console.WriteLine(String.Format("{0:Work done 0.00}%", (System.Double) d)); 
    Console.WriteLine(String.Format("{0:Work done #.##}%", (System.Double) d)); 
    

    注意、 java.lang.Doubleで、フォーマットするには、http://www.functionx.com/jsharp/Lesson04.htmを参照してください。

関連する問題