【问题标题】:Char.IsDigit() vs Char.IsNumber(), what's the difference?Char.IsDigit() 与 Char.IsNumber() 有什么区别?
【发布时间】:2011-05-28 00:59:30
【问题描述】:

Char.IsDigit()Char.IsNumber() 有什么区别

【问题讨论】:

  • 来自 MSDN:"[IsDigit] 确定 Char 是否为 radix-10 数字。这与 IsNumber 形成对比,后者确定 Char 是否属于任何数字 Unicode 类别。数字包括分数、下标、上标、罗马数字、货币分子、带圆圈的数字和特定于脚本的数字等字符。" msdn.microsoft.com/en-us/library/7f0ddtxh.aspx
  • 如果MSDN 很清楚StackOverFlow 不是那么受欢迎

标签: c# validation char


【解决方案1】:
// 1/2 symbol
Char.IsNumber('½'); // true
Char.IsDigit('½'); // false

// Unicode character for Roman numeral 5 (V)
Char.IsNumber('\x2165'); // true
Char.IsDigit('\x2165'); // false

【讨论】:

  • ³(“上标三”)呢?我曾经在另一种语言中遇到过一个错误,IsDigit 将三个上标识别为数字,这给我带来了一个小小的痛苦(主要是因为他们的 value - '0' 超过 130,而不是像我预期的那样介于 0 和 9 之间)
  • 在 LINQPad 中尝试了上标 3,它为 IsDigit 返回 false。但这里有一个应该返回 true 的字符列表:fileformat.info/info/unicode/category/Nd/list.htm
猜你喜欢
  • 2010-09-18
  • 1970-01-01
  • 2011-02-19
  • 2013-03-14
  • 2018-09-14
  • 2014-01-03
  • 2021-12-22
  • 2017-10-25
  • 2011-06-09
相关资源
最近更新 更多