Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Javascript] BigDecimal? Per ottenere molte cifre decimali di pigreco.

    Buongiorno, Sapreste consigliarmi su come procedere per ottenere molte cifre?

    Di seguito il codice per generare il pi-greco:

    codice:
    var l = Math.sqrt(2 - Math.sqrt(3));
    
    var v = Pi(l, 2048);
    
    
    
     
    
    function Pi(l,  n) {    
    
        l = l / Math.sqrt(2 + Math.sqrt(4 - l * l));        
        
        if (n>2)            
        
        return Pi(l, n/2);        
                        
        else {
                
        var P = 6 * l * N;
        
        return P;    
        }    
    }
    jabjoint

  2. #2
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    In Javascript il numero massimo di decimali dell'oggetto Number (rappresentato da float a 64bit) è di 17, se la variabile v rappresenta il risultato finale e dunque non viene utilizzata per altri calcoli, potresti valutare la rapprensentazione di v con un dato di tipo stringa anzichè Number.

    esempio:
    codice:
    return Number(P).toPrecision(50);
    Inoltre verifica questa linea di codice perche N non è definita , forse intendevi n (minuscola), js è case sensitive.

    codice:
    var P = 6 * l * N;

  3. #3
    Si certamente è da aggiungere la linea di codice:

    codice:
        var N = 2048; (da passare nella funzione)
    codice:
    N
    è costante mentre
    codice:
    n
    è variabile.

    Si la precisione però deve perdurare nei calcoli...adesso tento se si può aggirare il problema con il tuo suggerimento.
    jabjoint

  4. #4
    Utente di HTML.it L'avatar di ninja72
    Registrato dal
    May 2020
    residenza
    -
    Messaggi
    319
    A prescindere dal fatto che mancava la dichiarazione di N nel tuo post, in realtà definire N con "var" in javascript non vuol dire che stai definendo una costante.
    Sarebbe più opportuno utilizzare la dichiarazione "const".

    con l'utilizzo di var puoi cambiare il valore di N
    codice:
    var N = 2048
    N = 123
    con l'utilizzo di const non puoi cambiare il valore di N ma ricevi un typeError.
    codice:
    const N = 2048
    N = 123 // TypeError: Assignment to constant variable.
    Questo per farti capire che tutto il tuo ragionamento con annessi esempi sono errati, N ed n sono entrambe variabili, la convenzione del nome maiuscolo non determina che N sia un costante per javascript, ma viene determinata dal fatto che sia dichiarata con "const".

    Per finire, se la variabile v dev'essere utilizzata in altri calcoli tralascia quello che ti ho suggerito precedentemente, pensavo comunque di essere stato abbastanza chiaro ma invece vedo che mi hai frainteso o non mi hai proprio capito.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.