2010-08-03 8 views
0

Donc j'utilise this jquery plugin pour créer un joli camembert sur mon site web. Le problème est que le plugin arrondit les valeurs très bizarrement.Google Chart arrondissement impair pour les valeurs

Voici le tableau que je donne à ce:

 <table id="pieChart"> 
      <caption>Priebežné výsledky ankety</caption> 

      <thead> 
       <tr> 
        <th></th> 
        <th>Túto formu vzdelávania využívame už dlhšiu dobu.</th> 
        <th>Som zástancom štandardnej prezenčnej formy vzdelávania.</th> 
        <th>Plánujeme v najbližšom období zaviesť takúto efektívnu formu vzdelávania.</th> 
        <th>Doteraz som nepočul o takejto forme vzdelávania, ale zaujalo ma to.</th> 

       </tr> 
      </thead> 
       <tbody> 
       <tr> 
        <th>100</th> 

        <td>7.7</td> 
        <td>30.8</td> 

        <td>53.8</td> 
        <td>7.7</td> 

       </tr> 
      </tbody> 
     </table> 

Mais les valeurs qui apparaissent dans le graphique circulaire sont les suivantes:

7.2 (should be 7.7) 
30.9 (should be 30.8) 
54.6 (should be 53.8) 
7.2 (should be 7.7) 

Quelle est la raison derrière tout cela? Je suppose que cela pourrait être un arrondi bizarre à côté de l'API Google Maps?

MISE À JOUR:

Le plugin jquery génère iframe comme ceci:

<iframe scrolling="no" height="300" frameborder="0" width="720" name="Chart_Frame_22518" id="Chart_Frame_22518" marginheight="0" marginwidth="0"></iframe> 
+0

Vous pouvez voir les paramètres avec lesquels il appelle l'API en regardant l'URL. Regarde ça. Peut-être que le plugin jQuery envoie les mauvaises valeurs ... – NullUserException

+0

@NullUserException Comment puis-je voir l'URL? Vérifiez ma question mise à jour. Je peux voir l'iframe généré via Firebug mais il n'y a pas d'URL. –

+0

@NullUserException J'ai résolu ceci. Vérifie ma réponse –

Répondre

1

j'ai changé cela dans le plugin jQuery:

rows.each(function(index){ 
     $(this).find('td').each(function(index2){ 
      data.setCell(index2, index+1, parseInt($(this).text())); 
     }); 
}); 

à ceci:

rows.each(function(index){ 
     $(this).find('td').each(function(index2){ 
      data.setCell(index2, index+1, parseFloat($(this).text())); 
     }); 
}); 

Fondamentalement, je passe ed parseInt() pour parseFloat().

Et cela semble fonctionner :)

Questions connexes