用于计算C#.NET中分数的unicode字符的代码

时间:2010-08-11 13:00:26

标签: c# .net unicode

我正在寻找C#.NET中的一种方法来获取与给定分数对应的Unicode字符。在我的代码中,我有分子和分母,我需要弄清楚如何从这些中获取相应的Unicode字符,然后将其显示在WinForms组合框中。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您需要一个查找表,没有可用的算法方法(Unicode代码点不会像那样分配)。

当然,大多数分数都没有代码点,只添加了一些“常见”分数。

当然,即使使用代码点,您的字体也可能不包括它们。

答案 1 :(得分:1)

public static string VulgarFraction(int numerator, int denominator)
{
  if(denominator == 0)
    return "\u221E";
  if(denominator < 0)
    return VulgarFraction(-numerator, -denominator);
  return numerator.ToString() + '\u2044' + denominator.ToString();
}

包含预混合的粗俗部分是为了兼容性,不鼓励。使用U + 2044 FRACTION SLASH指示分数。这表明希望作为布局系统的一个分数进行渲染,并且也得到不太复杂的渲染方法的广泛支持。

如果你确实需要使用预先组合的字符,那么查找表是唯一合理的方法(你可以构建一组大的分支ifs和elses,但是它可以提高性能)。