2017-02-26 1 views
-5

C++ 지정을하려고합니다.입력은 부동 값이고 프로그램은 전체 파트와 10 진수 값을 반환합니다.

부동 데이터 형식의 사용자로부터 입력을 받아 포인트없이 주어진 값과 소수 부분의 전체 부분을 분리하는 작업을 수행해야합니다. 예를 들어 사용자가 4.456을 입력하고 출력이 전체 부분이 4 인 경우 점이없는 소수 부분은 456입니다.

나는 이것을 시도했지만 다음에 무엇을해야할지 확신하지 못했습니다.

#include<iostream> 
using namespace std; 

int main(int argc, char* argv[]) 
{ 
    float a,b; 
    int c,d=0,z; 

    cout<<"entre a number"<<endl; 
    cin>>a; 

    c=static_cast<int>(a); 
    b=a-c; 
    b=z; 
    cout<<z; 

    return 0; 
} 
+3

스택 오버플로에 오신 것을 환영합니다! [지금까지 시도한 내용] (http://mattgemmell.com/what-have-you-tried/)을 보여주기 위해 질문을 편집하십시오. 문제가있는 코드의 [Minimal, Complete, Verifiable example] (http://stackoverflow.com/help/mcve)을 포함시켜야 특정 문제를 해결할 수 있습니다. 또한 [How to Ask] (http://stackoverflow.com/help/how-to-ask)도 읽어야합니다. – user

답변

1

간단한/원시적 인 방법은 첫째 변환 (캐스트) intfloat/double하는 것입니다. 이것은 소수점을 버리면 답의 첫 번째 부분 인 "."앞에있는 정수를 얻을 수 있습니다. 그런 다음 원래 숫자에서이 정수를 빼면 간단히 0.xxxx가됩니다. 인쇄 할 십진수의 수를 결정한 다음이 값에 10을 곱하여 int으로 다시 캐스팅하고 인쇄하십시오. 그것.

+0

나는 그것을 시도하려고 시도 중이다 #include using namespace std; int main() { float a, b; int c, d = 0, z; cout << "엔터 프라이즈 번호"<< endl; cin >> a; c = static_cast (a); b = a-c; b = z; cout << z; 여기에서 나에게 맞는 것이나 가이드 야. –