求教java中如何判断一个数是否小数,求详

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教java中如何判断一个数是否小数,求详相关的知识,希望对你有一定的参考价值。

可以转化成String,然后判断里面有没有小数点,如果有,就是小数,没有就不是小数。

public class JudgeNumber 

   public static boolean judgeIsDecimal(String num)

boolean isdecimal = false;

if (num.contains(".")) 

 isdecimal=true;
 


return isdecimal;



public static void main(String[] args)   //测试的main方法

int num1 = 34;

double num2=67.8;

boolean is1 = judgeIsDecimal(String.valueOf(num1));

boolean is2=judgeIsDecimal(String.valueOf(num2));

System.out.println(is1);//fasle

System.out.println(is2);//true



参考技术A package nun;
import java.util.*;
public class DecimalJudge 

    public static void main(String[] args) 
        // 随机生成一个1以内的小数,并输..出
        Random rand=new Random();
        double i=rand.nextDouble();
        System.out.println(i);
        //将小数转换成字符串
        String j=String.valueOf(i);
        //判断字符串里是否有小数点
        if(j.contains("."))
            System.out.println(true);
        
    

Output:

0.2708394545308924
true

是小数,就会返回true

参考技术B

package Know1;


import java.util.Scanner;


public class Litter 

public static void f(double a)

int b = (int)a;

if(b == a)

System.out.println("是整数");

else

System.out.println("是小数");

public static void main(String[] args) 

Scanner sc = new Scanner(System.in);

System.out.println("请输入一个数");

double x = sc.nextDouble();

f(x);


参考技术C

    public class Test


    public static void main(String[] args)

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入一个数");

    //输入数字

    double aa = sc.nextDouble();

    System.out.println(aa==Math.round(aa)?"不是小数":"是小数");

参考技术D 当然是等于的

java怎么判断是不是是小数

请诸位帮忙,写一个正则表达式,判断字符串是否是小数,用java代码判断我已经写好了,不过正则表达式怎么写,我不知道,虚心求教。
大致的判断逻辑是,第一位可以为+-.数字,之后如果第一位是.的话,那么只能是数字,如果第一位不是.,那么可以包含一个.及任意位数字。
public static boolean isBigDecimal(String value)
char[] charArray = value.toCharArray();
int length = charArray.length;
if (length == 0)
return false;

char first = charArray[0];
// 如果不以.+-数字开头,那么不是小数
boolean net = first == '.';
if (!net && first != '+' && first != '-' && !Character.isDigit(first))
return false;

// 如果第一位有点,那么从第二位开始,只能是数字
if (net)
for (int i = 1; i < length; i++)
if (!Character.isDigit(charArray[i]))
return false;


else
// 如果第一位不是点,那么要判断,只能有一个点
for (int i = 1; i < length; i++)
first = charArray[i];
if (first == '.')
// 两个点的情况下,算错
if (net)
return false;

net = true;
else
if (!Character.isDigit(first))
return false;





return true;

参考技术A 1,^\\d+$ 是判断位正整数的
^\\d+\\.\\d+$
2,判断是否位正小数
-\\d+$:
3,判断是否位负整数
你代码里这三个用 “ | ”(或)运算符连接,表示只要是整数或者是正的小数就是true了。
4,另外可以加一句
^-\\d+\\.\\d+$ 判断是否位负的小数

按照你的要求:
Pattern pattern = Pattern.compile("^\\d+$|-\\d+$"); // 就是判断是否为整数
Pattern pattern = Pattern.compile("\\d+\\.\\d+$|-\\d+\\.\\d+$");//判断是否为小数
参考技术B contains不就可以了吗?有那么麻烦吗?
一个能够转化为float的字符串,且包含’.’的数 就是小数了吧
========
if(value == null)
return false;

try
Float.parseFloat(value);

catch(NumberFormatException e)
return false;


if(value.contains("."))
return true;

return false;
参考技术C 你这个方法有些麻烦,程序重要的是算法,有些不直接的方法就不要研究了。
public static boolean isBigDecimal(String value)

double n=Double.parseDouble(value);
int temp;
double i;
temp=(int)n;
i=n-temp;
if(i==0)

return false;

else
return true;
追问

不对的,这个问题我另外一个帖子已经解决了,你有兴趣可以去看看

追答

………………………………

本回答被提问者和网友采纳
参考技术D public static final String reg_double = "^[-\\+]?\\d+(\\.\\d+)?$";
public static boolean check(String str,String regex)
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(str);
boolean result =m.find();
return result;

以上是关于求教java中如何判断一个数是否小数,求详的主要内容,如果未能解决你的问题,请参考以下文章

新手求教 c语言素数判断算法

java怎么判断是不是是小数

js 中 if 判断 a=1 或者 b=1 该如何写?就是同时判断两个变量 求教 if

求教,sql保留2位小数

求教js怎么判断一个字符串是都在另一个字符串内,全匹配的

求教怎么让一个session只存一个用户,判断当前的session是不是有效