我正在寻找C#.NET中的一种方法来获取与给定分数对应的Unicode字符。在我的代码中,我有分子和分母,我需要弄清楚如何从这些中获取相应的Unicode字符,然后将其显示在WinForms组合框中。
有什么想法吗?
答案 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,但是它可以提高性能)。