예컨데, 3.1415925 -> 3.142 0.0001986528 -> 0.0001987 12363.4 -> 1236
이런식으로 유효숫자를 변경하려면 어떻게 해야 하나요? 화면으로 보려면 C++ 라면 cout.precision(4) 를 하면 되지만, 출력말고 숫자자체를 바꾸고 싶어서요.
#include <stdio.h> #include <stdlib.h> int main() { double t = 3.1415925; char s[255]; printf("%lf\n", t); sprintf(s, "%.3lf", t); t = atof(s); printf("%lf\n", t); return 0; }
대략 이 정도면.. ^^
2005년 10월 10일.
ㅋㅋ
ㅡ_ㅡ;
double pi = 3.1415925; double cut = ceil(pi * 1000.0) / 1000.0;
고맙습니다.
그런데 위의 두 답글은 3.141592 -> 3.142 는 잘 되는데, 3141592 -> 3142000 은 안 되서 다시 고쳐봤습니다.
#include <iostream> #include <sstream>
using namespace std;
int main() { double t = 31415925;
stringstream st; st.precision(4);
cout << t << endl; st << t; st >> t; cout << t << endl; return 0; }
stringstream을 안 쓰고 정의에 따라서 한다면...
double convert_precision(double value, int prec = 4) { if(value > 0) { double mult = pow(10.0, ceil(log10(value)) - prec); return floor(value / mult) * mult; } else if(value < 0) { return -convert_precision(-value, prec); } else { return 0.0; } }
- 토끼군
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
[code:1]#include <stdio.h>#inclu
대략 이 정도면.. ^^
2005년 10월 10일.
ㅋㅋ
ㅋㅋ
ㅡ_ㅡ;
[code:1]double pi = 3.1415925;double
힝~
ㅡ_ㅡ;
고맙습니다.그런데 위의 두 답글은 3.141592 -> 3.
고맙습니다.
그런데 위의 두 답글은 3.141592 -> 3.142 는 잘 되는데, 3141592 -> 3142000 은 안 되서 다시 고쳐봤습니다.
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
double t = 31415925;
stringstream st;
st.precision(4);
cout << t << endl;
st << t;
st >> t;
cout << t << endl;
return 0;
}
stringstream을 안 쓰고 정의에 따라서 한다면...[co
stringstream을 안 쓰고 정의에 따라서 한다면...
- 토끼군
댓글 달기