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

What is the difference between QChar::isDigit() and QChar::isNumber()?

本文关键字:QChar 什么 区别 isDigit isNumber 之间      更新时间:2023-10-16

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

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

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

因此,要想知道区别,我需要知道这些Number_*类别到底是什么,我认为文档中的链接并没有解释它,相反,它指向了关于样式表的文档。

(正确)提示隐藏在文档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的一部分。例如,㊱;被归类为"数字,其他",而Ⅱ;(罗马数字二)被归类为"数字,字母"。

"½"是一个字符。这是一个数字,但不是数字。