精华内容
下载资源
问答
  • import java.util.Scanner;public class ChangeToFenshuDemo {public static int getGongYueShu(int a, int b) {//两个数的最大公约数int t = 0;if(a < b){t = a;a = b;b = t;}int c = a % b;if(c == 0){return...

    import java.util.Scanner;

    public class ChangeToFenshuDemo {

    public static int getGongYueShu(int a, int b) {//求两个数的最大公约数

    int t = 0;

    if(a < b){

    t = a;

    a = b;

    b = t;

    }

    int c = a % b;

    if(c == 0){

    return b;

    }else{

    return getGongYueShu(b, c);

    }

    }

    public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    System.out.println("input xiaoshu");

    String xiaoshu = in.next();

    String[] array = new String[2];

    array = xiaoshu.split("\\.");

    int a = Integer.parseInt(array[0]);//获取整数部分

    int b = Integer.parseInt(array[1]);//获取小数部分

    int length = array[1].length();

    int FenZi = (int) (a * Math.pow(10, length) + b);

    int FenMu = (int) Math.pow(10, length);

    int MaxYueShu = getGongYueShu(FenZi, FenMu);

    System.out.println(FenZi / MaxYueShu + "/" + FenMu / MaxYueShu);

    }

    }

    原文:http://blog.csdn.net/happy_girl2012/article/details/46418261

    展开全文
  • float只有几位数的精度,所以你应该期望看到一个圆错误很容易。尝试双,这有更多的准确性,但仍有舍入误差。你必须回答你得到一个合理的输出的任何答案。如果这不是可取的,你可以使用BigDecimal,它没有舍入误差,...

    float只有几位数的精度,所以你应该期望看到一个圆错误很容易。尝试双,这有更多的准确性,但仍有舍入误差。你必须回答你得到一个合理的输出的任何答案。

    如果这不是可取的,你可以使用BigDecimal,它没有舍入误差,但有自己的头痛IMHO。

    编辑:你可能会发现这有趣。默认的Float.toString()使用最小舍入,但通常它不够。

    System.out.println("With no rounding");

    float n = 22.65f;

    System.out.println("n= "+new BigDecimal(n));

    float expected = 0.65f;

    System.out.println("expected= "+new BigDecimal(expected));

    System.out.println("n % 1= "+new BigDecimal(n % 1));

    System.out.println("n - Math.floor(n) = "+new BigDecimal(n - Math.floor(n)));

    System.out.println("n - (int)n= "+new BigDecimal(n - (int)n));

    System.out.println("With rounding");

    System.out.printf("n %% 1= %.2f%n", n % 1);

    System.out.printf("n - Math.floor(n) = %.2f%n", n - Math.floor(n));

    System.out.printf("n - (int)n= %.2f%n", n - (int)n);

    打印

    With no rounding

    n= 22.6499996185302734375

    expected= 0.64999997615814208984375

    n % 1= 0.6499996185302734375

    n - Math.floor(n) = 0.6499996185302734375

    n - (int)n= 0.6499996185302734375

    With rounding

    n % 1= 0.65

    n - Math.floor(n) = 0.65

    n - (int)n= 0.65

    展开全文
  • 我有一个方法返回输入的阶乘.它适用于整数,但我无法弄清楚如何使它与十进制数一起工作.这是我目前的方法:public static double factorial(double d){if (d == 0.0){return 1.0;}double abs = Math.abs(d);...

    我有一个方法返回输入的阶乘.它适用于整数,但我无法弄清楚如何使它与十进制数一起工作.

    这是我目前的方法:

    public static double factorial(double d)

    {

    if (d == 0.0)

    {

    return 1.0;

    }

    double abs = Math.abs(d);

    double decimal = abs - Math.floor(abs);

    double result = 1.0;

    for (double i = Math.floor(abs); i > decimal; --i)

    {

    result *= (i + decimal);

    }

    if (d < 0.0)

    {

    result = -result;

    }

    return result;

    }

    我找到了一个实现,但代码没有显示(我丢失了链接),给出的例子是5.5! = 5.5 * 4.5 * 3.5 * 2.5 * 1.5 * 0.5! = 287.885278

    所以从这种模式,我只是在for循环结果中将十进制值添加到i *(i decimal)

    但显然我的逻辑存在缺陷

    编辑:刚刚意识到最后一个值是0.5!而不是0.5.这一切都有所不同.所以0.5! = 0.88622和5.5! = 5.5 * 4.5 * 3.5 * 2.5 * 1.5 * 0.88622等于287.883028125

    展开全文
  • java 保存小数

    2021-04-16 03:09:43
    java 保留小数首先定义:java.text.DecimalFormat df=new java.text.DecimalFormat("#0.00");再是:x = 83.3333333333;df.format(x);结果: 83.33方式一:四舍五入double f = 111231.5585;BigDecimal b = new ...

    java 保留小数

    首先定义:

    java.text.DecimalFormat df=new java.text.DecimalFormat("#0.00");

    再是:

    x = 83.3333333333;

    df.format(x);

    结果: 83.33

    方式一:

    四舍五入

    double f = 111231.5585;

    BigDecimal b = new BigDecimal(f);

    double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

    保留两位小数

    方式二:

    java.text.DecimalFormat df =new java.text.DecimalFormat("#.00");

    df.format(你要格式化的数字);

    例:new java.text.DecimalFormat("#.00").format(3.1415926)

    #.00 表示两位小数 #.0000四位小数 以此类推...

    方式三:

    double d = 3.1415926;

    String result = String .format("%.2f");

    %.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型

    方式四:

    NumberFormat ddf1=NumberFormat.getNumberInstance() ;

    void setMaximumFractionDigits(int digits)

    digits 显示的数字位数

    为格式化对象设定小数点后的显示的最多位,显示的最后位是舍入的

    import java.text.* ;

    import java.math.* ;

    class TT

    {

    public static void main(String args[])

    { double x=23.5455;

    NumberFormat ddf1=NumberFormat.getNumberInstance() ;

    ddf1.setMaximumFractionDigits(2);

    String s= ddf1.format(x) ;

    System.out.print(s);

    }

    }

    结果:23.55

    展开全文
  • import java.math.BigDecimal; public class DoubleTest { public static void main(String[] args) { double number = 12345.67; // 强转整数 long longPart = (long) number; // 原数减去整数部分,为小数...
  • 项目用到了这个功能,查了下资料就写了个,传上来存档:import java.math.BigDecimal;/**** @author lan**/public class RandomTest {/*** @param args*/public static void main(String[] args) {float Max = 100, Min...
  • Java小数截断

    2021-03-08 14:41:00
    Java计算数据小数截断,目前提供了下面几种方式,这些方式截断小数如下: 用的测试代码如下,里面有对几种方式的注释心得public class Test {public static void main(String[] args) {BigDecimal bigDecimal1 = new...
  • Java小数取余问题求助

    2021-02-27 16:35:57
    2016-09-01 01:19最佳答案楼上的全不明白楼主的意思,楼主要的...严重BS楼上的,尤其是说java语言的那位。我来告诉你这个问题用递推解决首先要你承认一个公式,我是习惯pascal语言的,c++怕写错,反正只是算法,你忍...
  • 例如,当您键入22和56时,此代码可以正常工作,它显示正确的结果import java.util.Scanner;class apples{public static void main(String args[]){Scanner villy = new Scanner (System.in);double fnum, snum, answer;...
  • 想起前几天上cpld/fpga课时老师说得判断小数位数的例子,闲来无事用Java实现一下。顺便也在csdn上露露头。思想:将小数作为字符串处理,获取小数点的位置。用字符串的长度减去小数点位置,再减去1,得到小数位数。/*...
  • java小数属于什么类型的数据

    千次阅读 2021-03-04 05:56:05
    展开全部小数属于浮点型(默认为double)。浮点型代表的是实数,其实就是包含小数的部分。...一、浮点型常量Java的实常数有两种表示形式:十进制数形式,由数字和小数点组成,且必须有小数点,如0.123, .12...
  • 本文实例针对java保留两位小数问题为大家进行解答,供大家参考,具体内容如下方式一:四舍五入double f = 111231.5585;BigDecimal b = new BigDecimal(f);double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP)....
  • Java小数精确计算

    2021-02-12 16:01:40
    小数精确计算System.out.println(2.00 -1.10);//0.8999999999999999上面的计算出的结果不是 0.9,而是一连串的小数。问题在于1.1这个数字不能被精确表示为一个double,因此它被表示为最接近它的double值,该程序从2...
  • java怎么保留小数

    2021-03-17 20:48:42
    java中保留小数示例:/*** 1.BigDecimal常用于金额的计算,* 超过16位使用*/public void m1() {BigDecimal bg = new BigDecimal(f);double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubl...
  • java基础之小数计算

    2021-03-06 04:33:22
    项目中会经常用到小数位的计算。...出现原因分析:Java在计算浮点数的时候,由于二进制无法精确表示0.1的值(就好比十进制无法精确表示1/3一样)。解决方案:2种1.先用整数加减乘除,再除以小数位。2.使用BigDecimal...
  • 整数除法小数点后第n位开始的3位数位数不足的补0,如0.125小数第3位后三位:0.12500→500输入格式:a b n,空格分开,a是被除数,b是除数,n是小数后的位置输出格式:3位数字,a÷b小数后第n位开始的3位数字样例:输入:1 8 1...
  • 4种方法,都是四舍五入,例,保留4位小数:import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;public class Format {static double f = 111231.55856666666;public static...
  • Java 小数精确计算问题System.out.println(2.00 -1.10);//0.8999999999999999上面的计算出的结果不是0.9,而是一连串的小数。问题在于1.1 这个数字不能被精确表示为一个double,因此它被表示为最接近它的double 值,...
  • float、double类型的问题我们都知道,计算机是使用二进制存储数据的。而平常生活中,大多数情况下我们...我们先来看看十进制小数转二进制小数的方法对小数点以后的数乘以2,会得到一个结果,取结果的整数部分(不是1...
  • B:在Java中,如果你输入一个小数,系统默认的是double类型的,这个式子相当于float f=double 11.1,明显错误,如果想要表达11.1为float类型的,需要在11.1末尾加一个f标识你输入的是float类型即可 C:0.0是小数,...
  • java小数金额的比较

    2021-08-17 16:14:02
    } BigDecimal.setScale()方法用于格式化小数点 setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_UP)进位...
  • java 中提供BigDecimal对小数的精确处理a) 通常用到下面的方法: 保留两位小数, 四舍五入setScale(int newScale, int roundingMode)- newScale:保留的小数位数- roundingMode:精度取值方式roundingMode的取值有...
  • java小数用什么

    2021-03-15 19:55:03
    感谢大家积极回答!目前的解决办法数据库类型设置timestamp类型的length=0页面输入...小数秒(毫微秒)哈哈我说的输入其实就是一个日期控件选择日期,因为需要给用户修改日期。下面是sql:CREATETABLE"public"."tb_aaa...
  • Java中控制小数位数

    2021-02-13 02:17:44
    方法一:使用BigDecimalpublic class BigDecimalDemo {public static void main(String[] args) {BigDecimal decimal = new BigDecimal(Math.PI);decimal = decimal.setScale(10, BigDecimal.ROUND_HALF_EVEN);...
  • 对于正小数而言,可以考带+号,并考虑两种情况,第一个数字为0和第一个数字不为0,第一个数字为0时,则小数点后面应该不为0,第一个数字不为0时,小数点后可以为任意数字5. 对于负小数而言,必须带负号,其余都同.....
  • java判断是否是小数

    千次阅读 2021-02-12 13:34:40
    可以将数字转化成String,然后判断里面有没有小数点,如果有,就是小数,没有就不是小数。public class JudgeNumber {public static boolean judgeIsDecimal(String num){boolean isdecimal = false;if (num....
  • java小数格式化

    2021-03-04 03:34:30
    java.text 包中的一些包可以处理这类问题import java.text.NumberFormat;1。Decimalformat df1 = new Decimalformat("####.000");System.out.println(df1.format(1234.56));显示:1234.5602。NumberFormat nf = ...
  • java保留两位小数问题: 方式一: 四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 方式二: java.text....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,292
精华内容 57,716
关键字:

java求小数

java 订阅