2015-11-11 95 views
-1

我已經創建了以下程序來查看來自用戶的輸入是浮點數還是整數。問題有時候它說輸入是浮動的,有時ts表示它是整數。即使像1.24這樣的數字是整數。檢查用戶輸入是浮點還是整數

#include <stdio.h> 
int main(void) { 

     float num1; 

     printf("Enter number: "); 
     scanf("%lf", &num1); 

     int num2 = num1; 

     if (((num2 * 100) % 100) == 0) { 

       printf("float \n"); 
     } 
     else { 
       printf("integer \n"); 
     } 
} 
+0

這將不會低於1.0 – Haris

+2

號工作這將是更可靠簡單搜索的字符串的小數點。這種方法容易出現各種錯誤。 –

+0

if(ceil(num1)== num1)then integer –

回答

0

因爲您正在將num1分配給num2,並且num2被聲明爲整數。

Means if you do like: 
num1=34.5; 
then after num2=num1; 
num2=34; not 34.5 

因此,你的號碼在這裏變成了整數。

如我們所知,%不適用於float。

如果要檢查你的輸入作爲浮動或整數,那麼你可以小區功能

if(ceil(num1)==num1) 

這肯定會工作。

我在這裏粘貼示例爲:

float num1; 
    printf("Enter number: "); 
    scanf("%f", &num1); 

    if (ceil(num1)==num1) { 

      printf("integer \n"); 
    } 
    else { 
      printf("float \n"); 
    } 
+0

OP在哪裏使用模運算符在'float'? – Downvoter

+0

@pallavi謝謝你的回答,它仍然是一樣的。 –

+0

@ Mrs.Husain,它仍然提供了1.24整數 – Ambika

相關問題