I want to print a float number with it's digits extending to 20000 digits after the decimal i.e. if the number is 10/3, it should print 3.333333333333333333333333333...20000 or more times.
So, how do I print something like that?
Also, do tell the solution for C and C++ as well...
The code I used was:

#include<iostream>
#include<math.h>
#include<conio.h>
using namespace std;
int main(){
    printf("%f",(sqrt(2)));
    getch();
    return 0;
    }

It gave me output: 1.414214

Recommended Answers

All 5 Replies

I cannot use a imported library in this program.
So, is their no other way of getting a solution as I want.
I want to calculate sqrt(2) to the maximum level of digits possible...

>>I want to calculate sqrt(2) to the maximum level of digits possible...

You can't. Its a irrational number.

commented: Bazinga! +4

In your last reply, you gave a link to a question. I got a solution for it.

#include<iostream>
#include<conio.h>
using namespace std;
int main(){
    char a[15];
    gets(a);
    char b='1';
    for (int i=0;a[i]!='\0';i++){
        cout<<a[i];
        if ((a[i]!='1')&&(a[i]!='0')){
                                  b='2';
                                  break;
                                  }
        }
    b=='1'?(cout<<"It is binary...\n"):(cout<<"It is not binary...\n");
    getch();
    return 0;
    }

Even though I solved it but I am not quite happy with the solution as it takes a limited input. If I take a larger array, then I would be wasting memory space.
Rest all is correct I guess..?? :confused:

And to my question... It is also a question at spoj.pl
I will try to make that program too, pretty soon...

float stores with 6 digits of precision. I recommend you go for double (15 digits)
& try to output it like

double var=sqrt(static_cast<double>(2));
printf("%Lf2.15", var);
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.