2 votes

doublement de la distribution rationnelle

En utilisant le bout de code suivant compilé contre boost 1.62 :

#include <boost/rational.hpp>
#include <iostream>

int main() {
    auto val = boost::rational<int64_t>(499999, 2);
    std::cout << val << std::endl;
    std::cout << boost::rational_cast<double>(val) << std::endl;
}

J'obtiens le résultat suivant :

499999/2
250000

Je m'attendrais à ce que rational_cast donne 249999.5. Quelqu'un peut-il m'expliquer ce que je fais mal ?

4voto

AdvSphere Points 602

Modifier le formatage par défaut pour les entrées/sorties en virgule flottante : std::cout << std::fixed << boost::rational_cast<double>(v) << std::endl; ajouter std::fixed à ce sujet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X