如何将文本框输入的string转为float后通过BitConverter转byte数组存入Int32
解决方案
你的原有代码存在两处错误,修正后即可正常运行:
- 数值解析逻辑错误:
int.Parse()仅支持解析整数格式字符串,输入带小数点的24.5会直接抛出格式异常,无需通过int中转,直接用浮点型解析方法即可 - 类型转换语法错误:
(data)f为非法写法,将double转为float的正确语法是(float)data
基础正确实现(匹配参考代码逻辑)
textbox1.Text = "24.5"; // 直接将输入字符串解析为float类型 float data = float.Parse(textbox1.Text); byte[] b = BitConverter.GetBytes(data); int i = BitConverter.ToInt32(b, 0);
兼容double存储的实现
如果你需要先将数值存为double类型,可使用如下写法:
textbox1.Text = "24.5"; double data = double.Parse(textbox1.Text); // 显式转换为float后传入方法 byte[] b = BitConverter.GetBytes((float)data); int i = BitConverter.ToInt32(b, 0);
健壮性优化版本
为避免用户输入非法格式的字符串导致程序崩溃,推荐使用TryParse做安全校验:
textbox1.Text = "24.5"; if (float.TryParse(textbox1.Text, out float data)) { byte[] b = BitConverter.GetBytes(data); int i = BitConverter.ToInt32(b, 0); // 此处添加后续业务逻辑 } else { // 此处添加输入非法时的处理逻辑,例如弹出提示 }
内容的提问来源于stack exchange,提问作者mustafa kılıç
相关产品推荐
相关产品推荐

