Je souhaite analyser une fraction stockée dans une chaîne (par exemple "2/13") en double. Je peux écrire le code d'analyse, mais ma seule question est où devrait aller ce code. Le mieux serait que je puisse utiliser la fonction double.Parse() à cette fin. Est-il possible de le faire? Si double.Parse() ne peut pas être utilisé comme il s'agit de l'écriture d'une méthode d'extension? Ou de toute autre manière? Je ne veux pas écrire une classe Fraction parce que la conversion de la représentation en chaîne de fraction en double va être une opération unique (quand l'utilisateur entre pour la première fois) et après que la chaîne de fraction sera rejetée .Analyse d'une fraction pour doubler
Répondre
"... après que la chaîne de fraction sera rejetée."
Vous pouvez rendre la classe de fraction statique, avec une méthode d'analyse statique qui prend une chaîne et renvoie un double.
public static class Fraction
{
public static double Parse(string inValue)
{
// code to parse string
// and return calculated value
}
}
utilisation:
double myvalue = Fraction.Parse("2/13");
Rien est instancié, rien est mis au rebut ...
Cette approche suppose bien sûr, que vous ne se soucient pas de conserver les valeurs d'origine (sur la base votre mention dans la question d'an que vous souhaitez "jeter" la valeur initiale de chaîne utilisée pour créer la fraction). Si, otoh, vous vouliez "conserver" cet état (les valeurs initiales des deux nombres entiers utilisés pour créer la fraction), alors une classe non statique séparée (en fait une structure pourrait être meilleure dans ce cas)) serait une meilleure façon d'y aller. Vous perdrez alors toute précision, car les opérations arithmétiques futures utilisant les instances de cette structure pourraient être codées pour utiliser les deux valeurs d'état intégral exactes originales stockées dans ces champs au lieu du double arrondi légèrement moins précis que vous avez obtenu de l'opération de division.
Il n'est pas possible de remplacer double.Parse()
par une méthode d'extension, mais vous pouvez créer une méthode d'extension double.ParseFraction()
à la place. Cela semble être une façon raisonnable de le faire.
- 1. Analyse d'une fraction dans un formulaire Django
- 2. valeur textfield fonte pour doubler
- 3. conversion doubler (erreur)
- 4. Parse pourcentage à doubler
- 5. Notation de fraction de fraction de force LaTeX
- 6. C# - Fraction d'interface?
- 7. Longueur de la fraction
- 8. String.Format() fraction nombre entier
- 9. fraction Scanner Somme « Formula »
- 10. Matlab Fraction to Floating Point
- 11. Fraction du scanner fractionSum finish
- 12. Regex pour doubler les guillemets simples dans la chaîne
- 13. L'analyse de chaîne pour doubler échoue en C++
- 14. Fraction horizontale pour pop-to-buffer dans Emacs 23?
- 15. Qu'est-ce que U + 215F (fraction numérateur un) pour?
- 16. algorithme optimal pour calculer le résultat d'une fraction continue
- 17. Déballez de hex de doubler en Python
- 18. L'ajout de flotteur promu à doubler?
- 19. Silverlight XAML Reliure - Décimal à doubler
- 20. Champ de texte J2ME à doubler
- 21. Python: éviter la simplification de la fraction
- 22. os.path.getmtime() ne retourne pas fraction de seconde
- 23. Comment convertir un flotteur en fraction?
- 24. analyse simple html pour iphone
- 25. Code pour calculer le caractère unicode pour une fraction en C# .NET
- 26. Jeditable doubler sur tous les sauts de ligne modifier
- 27. Comment insérer un séparateur de milliers (virgule) avec convert doubler
- 28. grammaire Antlr avec des guillemets simples doubler les opérateurs
- 29. Qu'est-ce que cela signifie de doubler la licence?
- 30. Comment lier une chaîne à doubler dans WPF?
Une telle méthode doit être statique et vous ne pouvez pas créer de méthodes d'extension statiques. –
Ah, en effet. Je n'ai jamais pensé à ça ... – Thomas