求教java中如何判断一个数是否小数,求详
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教java中如何判断一个数是否小数,求详相关的知识,希望对你有一定的参考价值。
可以转化成String,然后判断里面有没有小数点,如果有,就是小数,没有就不是小数。
public class JudgeNumberpublic 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
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);
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)?"不是小数":"是小数");
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;
^\\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中如何判断一个数是否小数,求详的主要内容,如果未能解决你的问题,请参考以下文章