2016-05-12 36 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