2016-05-12 84 views
1

我有textBox1,它包含數字10.我需要得到數字10以加倍小數點。我當前的代碼是:使小數點爲整數

variables.myNum = double.Parse(textBox1); 

我在變量類中聲明的myNum:

public static double myNum; 

與該代碼我得到的10號將翻一番。問題是我需要有小數點,所以我想有「10.」。如果我寫入textBox1「10.」它不起作用。編輯:.ToString(「0.00」)給整數的小數點,但它也給了我不想要的那兩個零。整數只需要一點。

編輯:首先我:

10 
10.5 
10.58 
10.589 

我想有:(1注十點以後點)

10. 
10.5 
10.58 
10.589 

用的ToString( 「0.00」),我可以得到:

10.00 
10.50 
10.58 
10.58 

但我不希望那些額外的零結束。只有點和數字不是零。

+1

有沒有這樣的概念,「雙小數點」 - 這只是一個數字。你什麼時候使用* myNum?你應該基本上將它轉換爲字符串時將其格式化。 –

+0

你的檔案沒有說你居住在哪個國家。當你問這樣的問題時,這很重要。嘗試使用逗號而不是小數點。如果您堅持使用句點,那麼您必須將CultureInfo.InvariantCulture.NumberFormat傳遞給Parse()方法。 –

+0

我在string [] lines = {...}中使用myNum。我可以在那裏轉換它嗎?我想用句號而不是逗號。我已經設置了CultureInfo,以便逗留逗號。 – kah

回答

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

你的代碼在'return'中有錯誤。看來這個函數試圖返回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