java中如何算double类型的乘法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何算double类型的乘法相关的知识,希望对你有一定的参考价值。

class Overload

void test()

System.out.println("No parameters");

void test(int a)

System.out.println("a:"+a);

void test(int a,int b)

System.out.println("a and b:"+a+" "+b);

double test(double a)

System.out.println("double a"+a);
return a*a;


class HelloWorld
public static void main(String args[])
double result;
double a;
Overload over=new Overload();
over.test();
over.test(10);
over.test(10,20);
result=over.test(123.4);
System.out.println("Result of over.test(123.4):"+result);
a=123.4*123.4;
System.out.println(a);


运行结果为:
No parameters
a:10
a and b:10 20
double a123.4
Result of over.test(123.4):15227.560000000001
15227.560000000001

参考技术A java中dobule类型的运算方法与int和float的一样。
代码示例:
double s1=0.23;
dobule s2=5.2;
dobule s3=s1*s2;
相关知识:java的运算方法和运算符。
加+,减-,乘以*,除以/,取余%。java的运算方式也是遵守先乘除后加减,有括号先算括号里的运算方式。
参考技术B 使用BigDecimal来计算double的乘法吧
BigDecimal multiply (BigDecimal val) //BigDecimal 乘法本回答被提问者采纳
参考技术C 你这样的是对的,因为123.4默认的是double型数据,如果你需要获得float型的结果,你可以写成123.4f*123.4f 参考技术D 就是你写的那样,直接乘就可以了 第5个回答  2012-07-21 这就是java内置的乘法运算机制!!貌似有比较精确的!

java中double类型显示两个小数,比如12.00

Double类型的数据如何保留两位小数? 各位大虾,现有Double类型的数据,如何转换为保留两位小数的数,返回值的类型仍然是Double类型的,而不是字符串类型。 比如     0,返回“0.00”;
提示:DecimalFormat       df       =       new       DecimalFormat( "#####0.00 ");                       System.out.println(df.format(d));     这段代码能够将Double类型的数据设置指保留两位,但是返回的是String类型,要让返回Double类型的,怎么办?
------解决方案--------------------------------------------------------
首先你要搞明白,什么是模型,什么是展现。
既然“客户的需求是希望能将0.0也显示为 0.00”,那么客户并没有要求说“希望0在内部保存的时候也保存为0.00”,他要的只是展现。所以,不论你存成什么样,只要你能展现的时候转成他要的格式不就行了。
如果你希望把一个0存储成0.00的形式,那我只好告诉你,只有string和bigdecimal可以选择,绝对不可能单纯用double实现。
对double来说,0和0.00永远是一样的。如果你要问为什么,我可以告诉你,这样表示出来的数你才会觉得比较合乎你从小接受的数的概念,否则就会有点乱套。
如果你有兴趣,可以仔细先看bigdecimal的javadoc,由于bigdecimal能分别表示0和0.0以及0.00等等,造成一个很怪的现象,就是,在bigdecimal的表示下:0.equals(0.0) 以及 0.equals(0.00) 都会返回假;同时,0.compareTo(0.0) 以及 0.compareTo(0.00) 却都会返回0。 BigDecimal rateDecimal = new BigDecimal(12);//12是一个double类型

BigDecimal  num=rateDecimal.setScale(1, BigDecimal.ROUND_HALF_UP);

num是12.00;用BigDecimal来帮助显示后面的零

 

 

ROUND_CEILING  大于等于该数的那个最近值
ROUND_DOWN  正数是小于等于该数的那个最近数,负数是大于等于该数的那个最近数
ROUND_FLOOR  小于等于该数的那个值
ROUND_HALF_DOWN  五舍六入
ROUND_HALF_EVEN  向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN 
ROUND_HALF_UP  四舍五入
ROUND_UNNECESSARY  计算结果是精确的,不需要舍入模式 
ROUND_UP  和ROUND_DOWN相反

以上是关于java中如何算double类型的乘法的主要内容,如果未能解决你的问题,请参考以下文章

double类型的乘法问题

java中long最多能存64位,两个超过long类型的数据之间怎样进行乘法运算?

如何计算矩阵的乘法?

谁能给一个java编写的利用最小二乘法进行曲线拟合的算法?

Excel怎么进行乘法和除法

矩阵的乘法运算怎么算?