如何检查条目是否是包括浮点数的数字
How to check if entry is number including float numbers
有没有一种简单的方法或函数来检查编辑框的条目是否是数字,包括浮点数。不允许任何字母或字母数字输入。如果没有浮点数部分,我会检查 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
如果需要使用双精度数字,请在 scanf 调用中使用 "%lf"
。
编辑:
CString ss;
float ff;
GetDlgItemText(IDC_MY_EDIT_BOX, ss);
LPCTSTR lpszString = ss;
TCHAR *endptr;
ff = (float) _tcstod(lpszString, &endptr);
if (endptr != lpszString && *endptr == ' ')
// ff contains the value
else
// error
如果是对话框,则可以向对话框添加编辑控件。比启动对话框向导将变量添加到此编辑控件。选择类型浮点数。DDX_Text例程将完成其余的工作。
但这将允许输入字母字符。如果你也想解决这个问题。可以使用仅允许十进制数字和小数点的特殊 OnChar (WM_CHAR) 处理程序对编辑控件进行子类化。
相关文章:
- C++LDAP检查用户是否是特定组的成员
- 检查某些类型是否是模板类 std::optional 的实例化
- 将错误返回给调用方而不是立即在 C++ 中抛出错误是否是一种好的做法
- 如何检查模板专用化是否是基本模板的子类?
- 如何检查变量是否是C++中的地图?
- C++ Chrono 确定一天是否是周末?
- 将相同共享指针的副本存储在不同的向量中是否是一种好的做法?
- 使用类在C++中存储和列出变量/方法是否是一种好的做法
- 代码在 CodeSignal 中工作不正确。不确定这是否是我的代码缺陷
- 如果 C 函数仍然可以间接执行(通过回调函数),那么将它声明为静态函数是否是一种不好的做法?
- MFC 中的窗口消息管理:添加基类调用是否是强制性的?
- 检查 n2 是否是 n1 的倍数后结果错误,但根本没有错误
- C ++:检查它是否是类中的数字
- 传递给放置 new 的指针是否是指向其对象表示形式的非 UB 指针?
- 使用 SET(C++) 检查两个给定字符串是否是字谜时出现运行时错误
- 从 std::string 到 std::array<char,size> 的 memcopy 额外数据是否是一种未定义的行为?
- 有没有办法检查发送到变量的值是否是正确的类型,而它已经在该变量下?
- 如何检查一个模板是否是另一个模板的类成员
- 有没有办法检查用户输入是否是数字?
- 如何检查条目是否是包括浮点数的数字