java中的小数点有什么作用,学java最重要的是学java的什么内容
大家好,感谢邀请,今天来为大家分享一下java中的小数点有什么作用的问题,以及和学java最重要的是学java的什么内容的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
Java中怎么把除法精确到小数点后100位
JAVA中如何对double或者float的浮点数进行精度计算,
在JAVA中提供了多种参数来实现精度的不同控制方式。
具体例子如下:
package com.soft4j.utility;
import java.math.BigDecimal;
/**
*与小数位精度(四舍五入等)相关的一些常用工具方法.
*
* float/double的精度取值方式分为以下几种:<br>
* java.math.BigDecimal.ROUND_UP<br>
* java.math.BigDecimal.ROUND_DOWN<br>
* java.math.BigDecimal.ROUND_CEILING<br>
* java.math.BigDecimal.ROUND_FLOOR<br>
* java.math.BigDecimal.ROUND_HALF_UP<br>
* java.math.BigDecimal.ROUND_HALF_DOWN<br>
* java.math.BigDecimal.ROUND_HALF_EVEN<br>
*
*@author stephen
*@version 1.0.0
*/
public final class RoundTool{
/**
*对double数据进行取精度.
*<p>
* For example:<br>
* double value= 100.345678;<br>
* double ret= round(value,4,BigDecimal.ROUND_HALF_UP);<br>
* ret为100.3457<br>
*
*@param value
* double数据.
*@param scale
*精度位数(保留的小数位数).
*@param roundingMode
*精度取值方式.
*@return精度计算后的数据.
*/
public static double round(double value, int scale, int roundingMode){
BigDecimal bd= new BigDecimal(value);
bd= bd.setScale(scale, roundingMode);
double d= bd.doubleValue();
bd= null;
return d;
}
/**
*测试用的main方法.
*
*@param argc
*运行参数.
*/
public static void main(String[] argc){
//下面都以保留2位小数为例
//ROUND_UP
//只要第2位后面存在大于0的小数,则第2位就+1
System.out.println(round(12.3401,2,BigDecimal.ROUND_UP));//12.35
System.out.println(round(-12.3401,2,BigDecimal.ROUND_UP));//-12.35
//ROUND_DOWN
//与ROUND_UP相反
//直接舍弃第2位后面的所有小数
System.out.println(round(12.349,2,BigDecimal.ROUND_DOWN));//12.34
System.out.println(round(-12.349,2,BigDecimal.ROUND_DOWN));//-12.34
//ROUND_CEILING
//如果数字>0则和ROUND_UP作用一样
//如果数字<0则和ROUND_DOWN作用一样
System.out.println(round(12.3401,2,BigDecimal.ROUND_CEILING));//12.35
System.out.println(round(-12.349,2,BigDecimal.ROUND_CEILING));//-12.34
//ROUND_FLOOR
//如果数字>0则和ROUND_DOWN作用一样
//如果数字<0则和ROUND_UP作用一样
System.out.println(round(12.349,2,BigDecimal.ROUND_FLOOR));//12.34
System.out.println(round(-12.3401,2,BigDecimal.ROUND_FLOOR));//-12.35
//ROUND_HALF_UP [这种方法最常用]
//如果第3位数字>=5,则第2位数字+1
//备注:只看第3位数字的值,不会考虑第3位之后的小数的
System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_UP));//12.35
System.out.println(round(12.3449,2,BigDecimal.ROUND_HALF_UP));//12.34
System.out.println(round(-12.345,2,BigDecimal.ROUND_HALF_UP));//-12.35
System.out.println(round(-12.3449,2,BigDecimal.ROUND_HALF_UP));//-12.34
//ROUND_HALF_DOWN
//如果第3位数字>=5,则做ROUND_UP
//如果第3位数字<5,则做ROUND_DOWN
System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_DOWN));//12.35
System.out.println(round(12.3449,2,BigDecimal.ROUND_HALF_DOWN));//12.34
System.out.println(round(-12.345,2,BigDecimal.ROUND_HALF_DOWN));//-12.35
System.out.println(round(-12.3449,2,BigDecimal.ROUND_HALF_DOWN));//-12.34
//ROUND_HALF_EVEN
//如果第3位是偶数,则做ROUND_HALF_DOWN
//如果第3位是奇数,则做ROUND_HALF_UP
System.out.println(round(12.346,2,BigDecimal.ROUND_HALF_EVEN));//12.35
System.out.println(round(12.345,2,BigDecimal.ROUND_HALF_EVEN));//12.35
}
}
相关文章:
《Double精度的常用设置》
http://henry406.javaeye.com/blog/459669
import java.text.DecimalFormat;
import java.math.BigDecimal;
public class Test_Double{
public static void main(String[] args){
//-----方法1--------四舍五入 round对负数是五舍六入
double d_1= 123.9;
System.out.println("d_1="+Math.round(d_1));
//-------方法2------------------
DecimalFormat decfmt= new DecimalFormat("##0.00");
System.out.println(decfmt.format(1.33482222));
//--------方法3--------------
double x= 1.33345;
java.text.NumberFormat formate= java.text.NumberFormat.getNumberInstance();
formate.setMaximumFractionDigits(3);//设定小数最大为数,那么显示的最后会四舍五入的
String m= formate.format(x);
System.out.println(m);
//--------方法4--------------
BigDecimal bd= new BigDecimal(1.234543);
bd= bd.setScale(3,BigDecimal.ROUND_HALF_EVEN);
double d= bd.doubleValue();
System.out.println(d);
//--------取消科学计数法-------------
Double dValue= Double.valueOf("276363652844.8477474");
System.out.println(dValue);
BigDecimal original= new BigDecimal(dValue.doubleValue());
BigDecimal result= original.setScale(2, BigDecimal.ROUND_HALF_DOWN);
String test= result.toString();
System.out.println(test);
}
}
学java最重要的是学java的什么内容
你好,学习java只要掌握好方式和方法,其实学起来并不是非常难。比如你可以自学也可以选择机构学。
java是目前主流的开发语言,程序员不论是大数据、云计算、web前端、后端开发等都需要从java学起,如果你想计入IT高薪行列,建议学java!
java学的内容主要有:
①JAVA编程基础(基础语法、面向对象、和谐特性等)
②WEB应用开发(静态网页制作、Oracle数据库、Java Web开发技术、Linux技术、网站性能与安全、软件工程开发流程、Java Web和谐等)
③企业级框架开发(数据结构与算法、SSH框架、JavaEE和谐等)
④项目实训
互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
java中有关cin.hasNext();求高手!!
亲,这些方法是有用的,下面举个例子:
假如你有一个文件,内容是“12345678”。按照上面所说的,只有一个hasNext()方法,假设这个hasNext方法的作用是判断是否有下一个字符(Char)。你在读取这个文件的时候,只需要尝试着读一个字符,如果有的话,就返回true;没有的话,就返回false。
好了,你又有一个需求,那就是直接从文件中读取阿拉伯数字。要求读到的内容是(1、2、3、4、5、6、7、8),而不是("1","2","3","4","5","6","7","8")。这时候你可能会觉得转换一下不就了事了吗:将读取到的字符转换成int来判断就行了。
但是还有更复杂的情况:假如文件中存放的内容是:"1.1 2.2 3.3 4.4 5.5 6.6 7.7 8.8",这时候刚好有一个需求,要你将文件中的这些小数读取出来,这时候你要判断是否有下一个小数的话做的工作就多了:先读取第一个字符"1",然后读取小数点".",然后是下一个字符“1”,然后遇到了空格,停止(记住,这时候你只有一个能判断Char的hasNext可用,你只能一个一个的把字符读出来进行判断);将前面读取到的三个字符("1",".","1")合并以后转换成小数1.1;紧接着是第二个,以此类推,一直到把所有的小数都读取出来。
好了,现在的需求出来了:
1)将文件中的内容以小数的形式读取出来;
2)将文件中的内容以整数的形式读取出来;
3)将文件中的内容以字符串的形式读取出来;
4)将文件中的内容以boolean的形式读取出来;
5)将文件中的内容以字节的形式读取出来;
6)还有很多不同的需求......
这时候你就不得不写一些非常纠结的代码来进行判断和读取,你需要自己来测试这些方法的正确性。在你一番焦头烂额之后,才会觉得那些hasNextXxx()方法是那么的方便,省去了你很多不必要的编码,难道这不正是工具类所要达到的效果吗?所以这些东西还是有用的,要等你碰到类似的需求时候就认识到了。
在此声明一下,Scanner类的实现并没有我上面说的那么简单,它综合了很多种数据读取方式,还有一个重要的内容,那就是分隔符,用户在读取文件之前可以先设置好分隔符,告诉Scanner如何去分割文件中的内容,比如“1.1 2.2 3.3 4.4”,这里的分隔符就是空格""。Scanner会先用空格来分割字符串,然后判断是否有小数内容。
好了,文章到这里就结束啦,如果本次分享的java中的小数点有什么作用和学java最重要的是学java的什么内容问题对您有所帮助,还望关注下本站哦!