我有一個(gè)練習(xí),我必須將字符串轉(zhuǎn)換為整數(shù)并能夠處理負(fù)數(shù)。這種方法可行,但必須有更好的方法來(lái)做到這一點(diǎn)。String nr = "-5.6";double x = Convert.ToDouble(nr); //Convert to doubledouble y = Math.Round(x); //Round the nrint r = Convert.ToInt32(x); //Convert to Int string t = r.ToString(); //Convert back to string so possibletextBox1.AppendText(t); //to Append to textBox
2 回答

九州編程
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以進(jìn)入英雄模式,只需一行即可完成,具體取決于您想要的結(jié)果
var nr = "-5.6";
var result = Math.Truncate(double.Parse(nr)).ToString() ; // -5
// or
var result = Math.Round(double.Parse(nr)).ToString() ; // -6
雖然將所有內(nèi)容都放在一行作為一種黑客,但如果這是用戶輸入,您可能會(huì)想要使用double.TryParse和驗(yàn)證骯臟的小手指

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
你的方法很好;它是明確的,允許您完全控制轉(zhuǎn)換的每個(gè)步驟。例如,可以很容易地對(duì)其進(jìn)行修改以更改舍入規(guī)則或處理不同的數(shù)字格式。
但是,如果您想要非常簡(jiǎn)單和簡(jiǎn)短的內(nèi)容,則可以使用 string.Format 在一行中完成。
var result = string.Format("{0:N0}", float.Parse("-5.6"));
- 2 回答
- 0 關(guān)注
- 187 瀏覽
添加回答
舉報(bào)
0/150
提交
取消