是否有一种简单的方法或功能来检查编辑框的条目是否为数字,包括浮点数。不允许任何字母或字母数字条目。如果没有浮点数部分,我会检查 ascii,但我认为它不适用于浮点数。
谢谢
是否有一种简单的方法或功能来检查编辑框的条目是否为数字,包括浮点数。不允许任何字母或字母数字条目。如果没有浮点数部分,我会检查 ascii,但我认为它不适用于浮点数。
谢谢
由于您的问题带有 标记mfc
,因此这里是使用 CString 的代码片段:
CString ss;
float ff;
GetDlgItemText(IDC_MY_EDIT_BOX, ss);
if (_stscanf_s(ss, _T("%f"), &ff) == 1)
// ff contains the value
else
// error
如果您需要使用双精度数,"%lf"
请在 scanf 调用中使用。
编辑:
CString ss;
float ff;
GetDlgItemText(IDC_MY_EDIT_BOX, ss);
LPCTSTR lpszString = ss;
TCHAR *endptr;
ff = (float) _tcstod(lpszString, &endptr);
if (endptr != lpszString && *endptr == '\0')
// ff contains the value
else
// error
如果它是一个对话框,您可以在对话框中添加一个编辑控件。比启动对话框向导添加一个变量到这个编辑控件。选择类型浮动。DDX_Text 例程将完成其余的工作。
但这将允许输入字母字符。如果你也想解决这个问题。您可以使用仅允许小数和小数点的特殊 OnChar (WM_CHAR) 处理程序对编辑控件进行子类化。