2010-08-11 4 views
0

Je cherche un moyen en C# .NET pour obtenir le caractère Unicode correspondant à une fraction donnée. Dans mon code, j'ai le numérateur et le dénominateur et je dois trouver comment obtenir le caractère Unicode correspondant, qui est ensuite affiché dans un combobox WinForms.Code pour calculer le caractère unicode pour une fraction en C# .NET

Des idées?

+0

Pouvez-vous poster un exemple de ce que vous cherchez? Quel caractère Unicode pour quelle valeur? – Oded

+0

Quels numérateurs/dénominateurs prévoyez-vous utiliser? Unicode ne peut afficher que quelques-uns de ces nombres, donc si vous en utilisez d'autres, vous pouvez vouloir une solution différente. – murgatroid99

+0

Exemple: numérateur = 3, Denominator 8 (par exemple 3/8) Unicode Caractère 'FRACTION trois huitièmes' (U + 215C) murgatroid99, je doute besoin au-delà de fractions seizièmes qui sont supportés. – Cat

Répondre

4

Vous aurez besoin d'une table de recherche, il n'y a pas de méthode algorithmique disponible (les points de code Unicode ne sont pas alloués comme ça).

Bien entendu, la plupart des fractions n'ont pas de code, seules quelques fractions "communes" ont été ajoutées.

Et bien sûr, même avec le codepoint, votre police ne les inclut peut-être pas.

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(); 
} 

Les fractions vulgarisées précomposées sont incluses pour des raisons de compatibilité et ne sont pas encouragées. Utilisez U + 2044 FRACTION SLASH pour indiquer une fraction. Cela indique le désir de rendre en fraction à un système de mise en page, et est également largement pris en charge par des méthodes de rendu moins sophistiquées. Si vous avez vraiment besoin d'utiliser les caractères précomposés, alors une table de recherche est la seule façon raisonnable (vous pouvez construire un grand ensemble de ifs et elses, mais c'est plus de travail pour moins de performance).

Questions connexes