2016-05-12 6 views
1

私はtextBox1を持っていて、それには10が入っています。その10を小数点以下2桁にする必要があります。私の現在のコードは次のとおりです。私は、変数クラスでmyNumを宣言した小数点を整数にする

variables.myNum = double.Parse(textBox1); 

public static double myNum; 

私はその数10を倍増するために取得するコード付き。問題は小数点が必要なので、「10」を持っていたいということです。私がtextBox1 "10"に書き込むと、それは動作しません。

EDIT:.ToString(「0.00」)は、全体の数字に小数点を与えるが、それはまた、私はしたくないこれら二つのゼロを与えます。整数だけの点が必要です。

EDIT:まず、私が持っている:

10 
10.5 
10.58 
10.589 

私が持っているしたいと思います:(第一10の後にドットを注意してください).ToStringで

10. 
10.5 
10.58 
10.589 

を( "0.00")私は得ることができます:

10.00 
10.50 
10.58 
10.58 

しかし、最後に余分なゼロが必要なわけではありません。ゼロでない点と数字のみ。

+1

「小数点付きの倍数」という概念はありません。単なる数値です。あなたはいつ* myNumを使用していますか?基本的には、文字列に変換するときにどのようにしたいかを書式設定する必要があります。 –

+0

お住まいの国はあなたの住んでいる国を言いません。あなたがこのような質問をするときに重要です。小数点の代わりにコンマを使用してみてください。ピリオドの使用を主張する場合は、CultureInfo.InvariantCulture.NumberFormatをParse()メソッドに渡す必要があります。 –

+0

私はstring [] lines = {...}でmyNumを使用しています。どういうわけかそこに変換できますか?カンマの代わりにピリオドを使用したい。私はCultureInfoを設定して、コンマ以上の期間にするようにしました。 – kah

答えて

1

出力はすでに1が含まれていない場合は、単に、.を追加することができます。

public static string ToGCodeNumber(double number, int digits) 
{ 
    // rounding (optional) 
    double number = Math.Round(number, digits); 

    // result with or without '.' 
    string intermediateResult = roundedNumber.ToString(CultureInfo.InvariantCulture); 
    if(!intermediateResult.Contains(".") 
     intermediateResult += "."; 

    // final result with a guaranteed '.' 
    return intermediateResult; 
} 
+0

あなたのコードは「返品」に誤りがあります。関数がvoidを返そうとしているようです。 – kah

+0

@kah修正済み、今すぐ動作するはずです –

-4
static void Main(string[] args) 
{ 
    Console.WriteLine(Test1()); 
    Console.WriteLine(Test2()); 
    Console.ReadLine(); 
} 

static decimal Test1() 
{ 
    return 10.999999999999999999999M; 
} 
static decimal Test2() 
{ 
    return (decimal)10.999999999999999999999; 
} 

最初に戻り10.999999999999999999999しかしseccondリターン11

+4

あなたはその質問を読んだことがありますか? – leppie

関連する問題