你好傢伙我創建計算器,我想這些值轉換爲浮動 字符串NUM =「2 + 6 + 8 + 9」; 所以他們會自動添加並給出共25個? 有沒有辦法做到這一點?如何將字符串轉換爲浮動在C#
對不起我的英文不好
你好傢伙我創建計算器,我想這些值轉換爲浮動 字符串NUM =「2 + 6 + 8 + 9」; 所以他們會自動添加並給出共25個? 有沒有辦法做到這一點?如何將字符串轉換爲浮動在C#
對不起我的英文不好
使用DataTable.Compute
;-)
DataTable table = new DataTable();
int i = (int) table.Compute("2+6+8+9", null); // 25
對於所有的規則和運營商的支持:DataColumn.Expression
如果你不知道結果的類型總是使用浮點型和System.Convert.ToDouble
它接受一切的IConvertible
,例如:
double d1 = System.Convert.ToDouble(table.Compute("2+6+8+9", null)); // 25.0
double d2 = System.Convert.ToDouble(table.Compute("2+6+8+9/2", null)); // 20.5
您正在尋找表達式評估器。有很多可用的。例如:http://csharpeval.codeplex.com/
中爲主體問的問題是直線前進。您可以將字符串轉換爲浮動是這樣的:
double f = double.Parse("2.5");
但是,如果你想爲你的問題,這需要更多的工作描述來處理任意表達式。幸運的是,其他人已經完成了這項工作。我寫了自己的表達式求值器,你可以在我的文章A C# Expression Evaluator中看到它。除了支持問題中的示例表達式外,它還支持變量和函數。
這可能會得到你想要的東西:
string[] inputArray = Regex.Split(num, @"\D+");
float results = 0;
foreach (var item in inputArray)
{
results += float.Parse(item);
}
如果表達式包含「+」以外的運算符,該怎麼辦? –
不管每個數字都會在數組中被拆分出來,無論是將它們分開的+ =正數。 – Bit
不,@LB問你在以「7 * 6」爲例時會發生什麼,例如 –
'反正是有做到這一點'是的,你應該寫一些代碼? –
'float string'?你想結束'num = 25','25'? '25.0'? –
你需要使用jQuery。明顯。 – blowdart