编写此代码的更好方法。从字符串,Math.Round转换并处理负数

时间:2019-07-16 05:39:39

标签: c# type-conversion

我有一个练习,我必须将字符串转换为整数并能够处理负数。这种工作,但必须有更好的方法来做到这一点。

String nr = "-5.6";

double x = Convert.ToDouble(nr);       //Convert to double

double y = Math.Round(x);   //Round the nr
int r = Convert.ToInt32(x); //Convert to Int 
string t = r.ToString();    //Convert back to string so possible
textBox1.AppendText(t);     //to Append to textBox

2 个答案:

答案 0 :(得分:2)

您可以进入英雄模式,并根据需要的结果单行完成

var nr = "-5.6";

var result = Math.Truncate(double.Parse(nr)).ToString() ; // -5
// or
var result = Math.Round(double.Parse(nr)).ToString() ; // -6

尽管将所有内容都作为一条hack记录,但如果这是用户输入,您可能仍想使用double.TryParse并针对肮脏的小手指进行验证

答案 1 :(得分:2)

您的方式还不错;它是明确的,可让您完全控制转换的每个步骤。例如,很容易对其进行修改以更改舍入规则或处理不同的数字格式。

但是,如果您想要非常简单和简短的内容,则可以使用string.Format在一行中完成。

var result = string.Format("{0:N0}", float.Parse("-5.6"));