Wyswietlanie double jako int

0
#include <iostream>

using namespace std;

int main()
{
    double *pd = new double;
    *pd = 100001.25;

    cout << "double wartosc = " << *pd << " | polozenie = " << pd << endl;
    cout << "polozenie wskaznika pd = " << &pd << endl;

    
    delete pd;

    return 0;
}

w konsoli wyswietla mi "double wartosc = 100001" gdzie *pd ma jeszcze część ułamkową, a jak widać nie robię żadnego rzutowania czy konwersji na int.
Dlaczego tak dziwnie?

8

Kwestia precyzji strumienia https://en.cppreference.com/w/cpp/io/ios_base/precision. Wg dokumentacji domyślna wartość to 6 czyli jakbyś zmienił wartość na 1001.25 to wyświetli Ci się poprawnie. Ustaw wyższą precyzję poprzez std::setprecision albo użyj std::fixed gdy wyświetlasz double.

1 użytkowników online, w tym zalogowanych: 0, gości: 1