[C++]Giới hạn input thuộc dạng float(double) đến 2 chữ số thập phân

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi MasterWind, 19/2/11.

  1. MasterWind

    MasterWind T.E.T.Я.I.S

    Tham gia ngày:
    12/4/06
    Bài viết:
    637
    Nơi ở:
    [GVN]Audition
    Mình mới bắt đầu học C++. Mình chỉ muốn hỏi là làm sao để có thể dùng lện cin>> vào 1 variable thuộc typedef float mà có thể giới hạn số nhập vào chỉ có 2 chữ số thập phân.

    Ví dụ: Input như thế này là hợp lệ: 2.31 ; 2.3 ; 2. ; 2
    còn input như thế này là không hợp lệ 2.3423423 . Chương trình sẽ dùng loop để kiểm tra input và sẽ hỏi nhập số cho đến khi nào input thỏa mãn điều kiện là 1 số có 2 chữ số thập phân hoặc ít hơn.


    Mình đã nghĩ ra 1 cách nhưng không khả thi khi input là 2.310 (nếu tính ra thì giá trị vẫn là 2.31)
    Mã:
    #include <iostream>
    
    using namespace std;
    
    void main()
    {
    	float num;
    	cout<<"Please input a real number!"; //Nhập 1 số nguyên
    	cin>>num;
    	
    	while(int(num*1000)%10 != 0)
    	{
    		cout<<"\nInvalid input. Try again: "; 
                    //Nhập số không đúng yêu cầu, nhập lại
    		cin>>num;
    	}
    }
    
    mình chỉ muốn hỏi là còn cách nào hay hơn không.
     
    Chỉnh sửa cuối: 19/2/11

Chia sẻ trang này