精华内容
下载资源
问答
  • Java double float与int相乘出错问题

    万次阅读 2017-06-07 14:02:50
    public class double_int { public static void main(String[] args) { double d = 0.06; float f = (float) d; int n = 750; int ref = (int) (n * (1 + f)); System.out.println(ref)

    看下面的一段代码的运行:

    public class double_int {
    	public static void main(String[] args) {
    		double d = 0.06;
    		float f = (float) d;		
    		int n = 750;
    
    		int ref = (int) (n * (1 + f));
    		System.out.println(ref);
    
    	}
    
    }

    输出结果很意外的不是 795而是794

    public class double_int {
    	public static void main(String[] args) {
    		double d = 0.16;
    		float f = (float) d;		
    		int n = 750;
    
    		int ref = (int) (n * (1 + d));
    		System.out.println(ref);
    
    	}
    
    }
    输出结果很意外的不是870而是869

    解决方法

    import java.math.BigDecimal;
    
    public class double_int_float {
    
    	public static void main(String[] args) {
    		double d = 0.06;
    		float f = (float) d;
    		int n = 750;
    
    		BigDecimal a1 = new BigDecimal(Double.toString((d + 1)));
    		BigDecimal b1 = new BigDecimal(Double.toString(n));
    		int result = a1.multiply(b1).intValue();// 相乘结果
    		System.out.println(result);
    
    	}
    
    }
    


    展开全文
  • 看下面的一段代码的运行结果:public class TestDouble {public static void main(String[] args) {double d =538.8;System.out.println(d*100);}输出结果很意外的不是 53880 而是53879.99999999999解决方法一:538.8*...

    看下面的一段代码的运行结果:

    public class TestDouble {

    public static void main(String[] args) {

    double d =538.8;

    System.out.println(d*100);

    }

    输出结果很意外的不是 53880 而是53879.99999999999

    解决方法一:

    538.8*100  用*10*10 替换,才能得到我们想要的结果

    解决方法二:

    public class TestDouble {

    public static void main(String[] args) {

    double d =538.8;

    BigDecimal a1 = new BigDecimal(Double.toString(d));

    BigDecimal b1 = new BigDecimal(Double.toString(100));

    BigDecimal result = a1.multiply(b1);// 相乘结果

    System.out.println(result);

    BigDecimal one = new BigDecimal("1");

    double a = result.divide(one,2,BigDecimal.ROUND_HALF_UP).doubleValue();//保留1位数

    System.out.println(a);

    }

    }

    展开全文
  • Java double 相乘的小问题记录

    千次阅读 2016-05-19 15:58:41
    看下面的一段代码的...[java] view plain copy   public class TestDouble {   public static void main(String[] args) {   double d =538.8;   System.out.println(d*100); 
    看下面的一段代码的运行结果: 
    
    [java]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. public class TestDouble {  
    2.     public static void main(String[] args) {  
    3.      double d =538.8;     
    4.      System.out.println(d*100);  
    5. }  

    输出结果很意外的不是 53880 而是53879.99999999999

    解决方法一:

    538.8*100  用*10*10 替换,才能得到我们想要的结果

    解决方法二:

    [java]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. public class TestDouble {  
    2.     public static void main(String[] args) {  
    3.      double d =538.8;      
    4.      BigDecimal a1 = new BigDecimal(Double.toString(d));  
    5.      BigDecimal b1 = new BigDecimal(Double.toString(100));   
    6.      BigDecimal result = a1.multiply(b1);// 相乘结果  
    7.      System.out.println(result);  
    8.      BigDecimal one = new BigDecimal("1");  
    9.      double a = result.divide(one,2,BigDecimal.ROUND_HALF_UP).doubleValue();//保留1位数  
    10.      System.out.println(a);  
    11.     }  
    12. }  

    Java double 相乘的小问题记录
    展开全文
  • java float double int 疑惑

    2013-01-18 23:26:30
    double a =0.58;  System.out.println("a:"+a);  System.out.println("相乘之后为::"+a*100);   输出: a:0.58 相乘之后为::57.99999999999999   2. float a =0.58f;  System.out....

    1.

    double a =0.58;
      System.out.println("a:"+a);
      System.out.println("相乘之后为::"+a*100);

     

    输出:

    a:0.58
    相乘之后为::57.99999999999999

     

    2.

    float a =0.58f;
      System.out.println("a:"+a);
      System.out.println("相乘之后为::"+a*100);

     

    输出:

    a:0.58
    相乘之后为::58.0

     

     float a =6f;
      System.out.println("a:"+a);
      System.out.println("相乘之后为::"+Float.parseFloat(Float.toString(a/10*100)));


      输出:

    a:6.0
    相乘之后为::60.000004

    展开全文
  • java 中 Integer 跟 double类型相乘还有比较的问题今早遇到了一个问题Integer 跟 double类型相乘的问题eg1:Integer packSize = 2;Integer qty = 7;Double nw = 20.4;int result = qty - qty % packSize;System.out....
  • 最近做练习的时候发现了一个有意思的问题,具体如图: ...而float与double类型变量能存储的二进制位数是有限的,多余的位数会被截断,这就造成了数据精度的丢失,这种精度的丢失在浮点数相乘的情况下会显得尤
  • 浮点数: 它是用来表示实数的一种方法,它用 M...浮点数有多种实现方法,计算机中浮点数的实现大都遵从 IEEE754 标准,IEEE754 规定了单精度浮点数双精度浮点数两种规格,单精度浮点数用4字节(32bit)表示浮...
  • javadouble相乘精度丢失问题

    千次阅读 2019-09-30 04:23:02
    比如 System.out.println(0.14*100); ... System.out.println(b.multiply(c).doubleValue()); 输出:  14.00 14 14.0 转载于:https://www.cnblogs.com/Iqiaoxun/p/5615848.html
  • java练习(分数相乘相加)

    千次阅读 2017-03-11 10:44:23
    分数相乘相加 import java.util.Scanner;class Fraction{ int a; int b; public Fraction() { } public Fraction(int a, int b) { this.a = a; this.b = b; } public double toD
  • double a =Math.random()*100;//生成一个100内的随机数 double b =Math.random()*100;//生成一个100内的随机数 DecimalFormat df = new DecimalFormat( "0.00" );//创建数字进行格式化类保留小数后两位 String...
  • java矩阵相乘

    2021-03-19 21:42:18
    Java实现矩阵相乘 package com.company; public class Matrix { public int row; public int col; public double[][] data; Matrix(double[][] array){ //获得矩阵的行与列数 this.row=array.length; this....
  • Java实现矩阵相乘

    千次阅读 2017-05-15 23:42:59
    大一刚学Java的时候,当时也学了线性代数这门课,在方程组基础向矩阵转换的思想方法上,感觉矩阵计算比较麻烦,所以当时一直想写一个小程序来通过输入两个矩阵输出相应的相乘之后的结果矩阵。鉴于当时刚刚接手Java,...
  • javaint,float,double的运算问题,BigDecimal加减乘除计算 1.两个int型数字相除,如果除数比被除数大很多,结果会为0.此时需要对其中一个数进行强制类型转换(float / double)即可输出正确结果 public static ...
  • JAVA中大数相乘的实现

    2020-04-26 19:27:03
    大数的运算,其思想是将其看成字符串,因为intdouble、long等数据类型都有大小限制 package compare; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; /** * 大数相乘,其...
  • OptionalInt,OptionalDouble,OptionalLong类的工作方式与Optional类十分类似,只不过他们是专门操作int,都变了,long类型的值而设计的。因此,他们分别定义了getAsDouble(),getAsInt(),getAsLong()方法,而不是get...
  • Java设计两个矩阵相乘的方法

    万次阅读 2016-11-13 18:20:57
    编写二个矩阵相乘的方法,方法头为: public static double[][] multiplyMatrix(double[][] a,double[][] b) 这里a的列数必须等于b的行数。 要求:提示输入m*n的矩阵an*k的矩阵b,m、n、k的值由用户输入,ab的...
  • java实现矩阵相乘

    千次阅读 2015-05-07 15:27:43
    众所周知,矩阵的乘法就是矩阵的行列相乘再相加。话不多说,直接上代码: package test; public class matrixMultiply { public static void printMatrix(int[][] a, int[][] b) { int r = a.length; int c ...
  • java实现大数相乘

    2011-09-08 10:41:06
    System.out.println("验证结果:"+Double.parseDouble(number1) * Double.parseDouble(number2)); } public static String multipBigNumber(String s1,String s2){ int longArray[] = null; int short...
  • JAVA中的矩阵相乘(Math3的使用)

    千次阅读 2017-10-24 08:01:23
    math3是Apache下的一款进行数学计算的一款java开源工具。jar包名称为:commons-math3-3.6.1.jar。大家可以通过maven或者其他网站进行下载。 math3是一款非常好用的工具,里面提供了各种运算的方法及类,方便大家...
  • public class Double2Int { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub double d = 5.5; int i = (int)d; ...
  •  Javaint型数组写矩阵乘法是不会报错,但是改成double型后开始疯狂报错,后来想起来可能是因为乘法会导致精度不准确的问题,所以百度了一下,改成了用BigDecimal类(Math类里的,还有个BigInteger)来做,发现就...
  • javadouble和float进行小数计算精度不准确大多数情况下,使用double和float计算的结果是准确的,但是在一些精度要求很高的系统中或者已知的小数计算得到的结果会不准确,这种问题是非常严重的。《Effective Java》...
  • (转) java double、float 运算

    千次阅读 2017-07-27 13:44:46
    double类型四则运算例子: 1、相加 1 public static double add(double a1, double b1) { 2 BigDecimal a2 = new BigDecimal(Double.toString(a1)); 3 BigDecimal b2 = new BigDecimal(Double.toS
  • java double 计算出错的问题

    千次阅读 2012-10-17 16:51:58
    最近在做android上的商城应用 使用到 double 进行加减计算是出现 错误 时不时出现浮点数计算不精确的问题。 纠结好久,以为我所学到的加减乘除已经out了。。 下面这个错误: 398649.9+0.2 = 398650.10000000003 ...
  • Java中的BigDecimal类和int和Integer总结

    千次阅读 2019-07-07 14:49:43
    intjava提供的8种原始类型之一,java为每个原始类型提供了封装类,Integer是int的封装类。int默认值是0,而Integer默认值是null; int和Integer(无论是否new)比较,都为true, 因为会把Integer自动拆箱为int再...
  • packagecom.hojo.avengers.lib.utils; importjava.math.BigDecimal; /** * *@ClassName:DoubleOperationUtils *@Description:封装double类型数据+-*%等运...
  • java double 保留两位小数

    千次阅读 2015-06-04 13:08:05
    java保留两位小数问题: 方式一: 四舍五入  double f = 111231.5585;  BigDecimal b = new BigDecimal(f);  double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();  保留...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,890
精华内容 3,156
关键字:

javadouble和int相乘

java 订阅