2016-02-03 7 views
6

Ho visto che è possibile ottenere il valore di PI grazie a Math.PI in C#.Libreria per costanti fisiche e matematiche e conversioni di base in C# .net

Sapete se esiste una libreria o un pacchetto per ottenere valori arrotondati per altre costanti famose, come ad esempio Avogadroo, Kelvin, Planck, Coulombs, numero d'oro, costante Newton?

Sarebbe molto utile se potessimo fare alcune semplici conversioni.

In un altro mondo: un momento di luce per le scienze, farebbe risparmiare un sacco di tempo a molte persone.

+1

A proposito, 'Math.PI' non è' π'. È '3.14159265358979323846'. –

+0

Perché questa domanda ha così tanti voti? È una qualità veramente bassa che non mostra alcuna possibilità di ricerca. – HimBromBeere

+0

sicuramente è una funzionalità che molte persone vorrebbero avere ma non osano chiedere se esiste su questo forum perché hanno paura di avere downvotes da persone come te – lambdaDev

risposta

1

È possibile utilizzare il const -parola chiave per questo:

class MyClass { 
    public const double KELVIN = -273.15; 
} 

Ora accedervi utilizzando MyClass.KELVIN.

Tuttavia, in base all'accuratezza necessaria per i calcoli, potrebbero essere necessari tipi di dati diversi, ad es. decimal, float o double.

Non esiste una libreria per quelle costanti perché quelle costanti condividono aspetti molto diversi e nessuno fino a quando li ha considerati contenuti in una libreria. Tuttavia puoi farlo aggiungendoli a una classe e pubblicandoli su GitHub.

+0

Perché una cifra quattro alla fine. Lo scostamento rispetto a Celsius/centigradi è '273.15'. La definizione wrt. la tripla temperatura dell'acqua è '273,16' (quindi il punto triplo è esattamente' + 0,01 ° gradi C). –

+0

@JeppeStigNielsen In effetti, ho pensato che fosse -273,14 – HimBromBeere

4

Come già menzionato, è possibile utilizzare const keyword per memorizzare i valori costanti. È anche possibile vedere questo article:

// Physical Constants in cgs Units 

// Boltzman Constant. Units erg/deg(K) 
public const double BOLTZMAN = 1.3807e-16; 

// Elementary Charge. Units statcoulomb 
public const double ECHARGE = 4.8032e-10; 

// Electron Mass. Units g 
public const double EMASS = 9.1095e-28; 

// Proton Mass. Units g 
public const double PMASS = 1.6726e-24; 

// Gravitational Constant. Units dyne-cm^2/g^2 
public const double GRAV = 6.6720e-08; 

// Planck constant. Units erg-sec 
public const double PLANCK = 6.6262e-27; 

// Speed of Light in a Vacuum. Units cm/sec 
public const double LIGHTSPEED = 2.9979e10; 

// Stefan-Boltzman Constant. Units erg/cm^2-sec-deg^4 
public const double STEFANBOLTZ = 5.6703e-5; 

// Avogadro Number. Units 1/mol 
public const double AVOGADRO = 6.0220e23; 

// Gas Constant. Units erg/deg-mol 
public const double GASCONSTANT = 8.3144e07; 

// Gravitational Acceleration at the Earths surface. Units cm/sec^2 
public const double GRAVACC = 980.67; 

// Solar Mass. Units g 
public const double SOLARMASS = 1.99e33; 

// Solar Radius. Units cm 
public const double SOLARRADIUS = 6.96e10; 

// Solar Luminosity. Units erg/sec 
public const double SOLARLUM = 3.90e33; 

// Solar Flux. Units erg/cm^2-sec 
public const double SOLARFLUX = 6.41e10; 

// Astronomical Unit (radius of the Earth's orbit). Units cm 
public const double AU = 1.50e13; 

Sarebbe bello se fosse esiste pacchetto aa, una biblioteca o di una classe nativa per quella

Come tale non c'è non tale libreria che puoi usare o una classe nativa. La cosa migliore è includere le costanti di cui sopra in una classe separata e quindi usarla.

+2

Più valori precisi, e in unità SI (se si preferisce) può essere trovato su [http://physics.nist.gov/cuu/Constants/](http:/ /physics.nist.gov/cuu/Constants/). Ad esempio, la costante di Boltzmann (sopra errata) è '1.38064852e-23' in joule pr. kelvin. L'incertezza è data in quella pagina. –

+1

è una buona risposta, grazie per averlo pubblicato. ma sarebbe grandioso e spero ancora di avere un pacco o una biblioteca, se non avrò il Tomorow lo segnerò come risposta – lambdaDev