QChar :: isDigit()和QChar :: isNumber()之间有什么区别?

时间:2014-09-17 17:45:02

标签: c++ qt

我阅读了文档,它说的是QChar::isNumber()

  

如果字符是数字(Number_*类别,而不仅仅是0-9),则返回true;

然而,当我点击Number_*时,它会将我发送到http://qt-project.org/doc/qt-5/stylesheet-reference.html#number,这是关于样式表的,它没有意义 - 样式表必须做什么与QChar?

所以要知道差异,我需要知道那些Number_ *类别到底是什么,我认为文档中的链接并没有解释它,而是指向我关于样式表的文档。

2 个答案:

答案 0 :(得分:6)

(正确)提示隐藏在文档isDigit()中:

  

如果字符是十进制数字(Number_DecimalDigit),则返回true;否则返回false。

此处Number_*链接正确无误:

QChar::Number_DecimalDigit    3   Unicode class name Nd
QChar::Number_Letter          4   Unicode class name Nl
QChar::Number_Other           5   Unicode class name No

因此isNumber()会检查给定的QChar是否属于unicode类NdNlNo。例如,被归类为“数字,其他”,而(罗马数字2)被归类为“数字,字母”。

答案 1 :(得分:3)

“½”是一个角色。这是一个数字,但它不是数字。