Hay un par de trucos realmente muy viejos que estoy sorprendido de no ver aquí.
atan (1) == PI/4, por lo que una castaña vieja cuando una función de arco tangente confiable es presente es 4 * atan (1).
Una estimación muy linda, de proporción fija que hace que el viejo Western 22/7 parezca suciedad es 355/113, lo cual es bueno con varios decimales (al menos tres o cuatro, creo). En algunos casos, esto es incluso suficiente para la aritmética de enteros: multiplique por 355 y luego divida por 113.
355/113 también es fácil de memorizar (para algunas personas de todos modos): cuente uno, uno, tres, tres, cinco, cinco y recuerde que está nombrando los dígitos en el denominador y el numerador (si olvida qué triplete va arriba, el pensamiento de un microsegundo generalmente lo va a arreglar).
Tenga en cuenta que 22/7 le da: 3.14285714, que está mal en las milésimas.
355/113 le da 3.14159292 que no está mal hasta las diez millonésimas.
Acc. Para /usr/include/math.h en mi casilla, M_PI está # definido como: 3.14159265358979323846 que probablemente sea bueno hasta donde llegue.
La lección que se obtiene de la estimación de PI es que hay muchas maneras de hacerlo, ninguna será perfecta alguna vez, y tiene que ordenarlas por el uso previsto.
355/113 es una antigua estimación china, y creo que es anterior a 22/7 por muchos años. Me lo enseñó un profesor de física cuando era estudiante.
[Esta pregunta] (http://stackoverflow.com/questions/19/fastest-way-to -get-value-of-pi) tiene un montón de buenas soluciones desde una perspectiva algorítmica. No creo que sea difícil adaptar uno de ellos a C#. –