JAVA如何把一个float四舍五入到小数点后2位,4位,或者其它指定位数.
以前以为很容易,一直没在意,今天突然用到了,才发现,系统没有这样的函数.狂晕,同事们用的方法为,先转成String,再取其中几位,再转成float型,(如:String.valueOf(c).substring(0,String.valueOf(c).indexOf(".") + 3)): 我觉得这样不爽,于是找了书看看,书上还真没找到,晕晕.到网上找了一些方法,还真行.如下(以下都是取2位,如果要取其它位,自己修改一下):
(一):这种方法方便,我就使用这种方法
float a = 123.2334f;
float b = (float)(Math.round(a*100))/100;(这里的100就是2位小数点,如果要其它位,如4位,这里两个100改成10000)
(二):这个方法也简单,不过还要再转成float型:
import java.text.DecimalFormat;
String a = new DecimalFormat("###,###,###.##").format(100.12345 );
(三):这个也可以用
float ft = 134.3435f;
int scale = 2;//设置位数
int roundingMode = 4;//表示四舍五入,可以选择其他舍值方式,例如去尾,等等.
BigDecimal bd = new BigDecimal((double)ft);
bd = bd.setScale(scale,roundingMode);
ft = bd.floatValue();
(四):个人想法,还没去做
就是先放大10的N次方,变成整数,再除以10的N次方变回float型 , 不知道这样可以不?
--------------------------------------------------------------------------------
暂时就这么多,以后如果还发现了新的,再发上来
(附)日期格式化
//获取当前系统日期和时间的方法
import java.text.SimpleDateFormat;
import java.util.Date;
public class TestDate {
public static void main(String[] args) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式为特有的,API文档中有
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//
Date d = new Date();
System.out.println(sdf.format(d));
}
}
分享到:
相关推荐
在这里,`setScale()`方法用于设置小数点后的位数(2),`ROUND_HALF_UP`是舍入模式,表示四舍五入。结果`f1`将是3.15。 2. **使用`DecimalFormat`类**: `DecimalFormat`是`java.text`包中的一个类,它可以按照...
本文将深入探讨如何在Java中保留两位小数,并覆盖四舍五入、浮点数精确计算以及避免科学记数法等问题。 #### 四舍五入保留两位小数 四舍五入是数学中的一个基本概念,指的是当一个数的小数部分小于等于0.5时,将其...
本文提供了一个简单的Java方法,该方法利用正则表达式来去除小数点后多余的零。这种方法不仅高效而且易于理解。 ##### 2.1 方法实现 ```java package test; /** * 去掉小数点后面多余的零。 * @author Hust * ...
接下来,我们将根据给定的部分代码片段,详细介绍如何通过Java解析一个按照IEEE 754标准编码的单精度浮点数。 ```java public double analyse(byte[] data) { int s = 0; // 符号位 double f = 0; // 尾数 int e...
如果超过两位小数,则会四舍五入到最接近的两位小数。例如,`1.234`会被格式化为`1.23`。 对于`float`类型的数据,虽然在Java中`float`精度较低,但处理方式与`double`类似,只需要将`double`替换为`float`即可。在...
- `setScale(2, BigDecimal.ROUND_HALF_UP)` 表示将该`BigDecimal`对象的小数点后保留2位,并采用四舍五入的方式处理第三位及以后的数字。 - 最终得到的`double f1`即为保留两位小数的结果。 #### 方法二:使用`...
在这里,我们创建了一个模式 "0.00",它表示至少两位小数,且设置了四舍五入模式。 3. **使用java.text.NumberFormat** `NumberFormat` 是一个抽象类,提供了格式化和解析数字的通用接口。我们可以通过 `...
在处理浮点数时,必须意识到这些特性并谨慎处理可能的异常情况,比如使用`Float.isNaN()`来检查一个值是否是NaN,或者使用`Float.compare()`来进行浮点数比较,以避免因为特殊值而导致的错误。在需要精确的货币计算...
Java使用正则表达式去除小数点后面多余的0功能示例 Java语言中使用正则表达式可以实现去除小数点后面多余的0的功能,这个功能示例主要介绍了Java使用正则表达式去除小数点后面多余的0功能,结合具体实例形式分析了...
Javascript取float型小数点后两位,例22.123456取成22.12,如何做? 1.通过substring截取。 function getnum() { var num = 22.123456; var result = num.substring(0,s.indexOf(".")+3); alert(result); }...
- **取小数点前两位并四舍五入**:使用`Math.round()`方法结合数学运算实现,例如: ```java double value = 123.456; double roundedValue = Math.round(value * 100.0) / 100.0; ``` #### 4. 日期和时间 - *...
【Java理论与实践:您的小数点到哪里去了?】 在Java编程中,浮点数和小数的使用虽然相对较少,但在特定场景下却至关重要。这篇文章主要探讨了Java中处理非整数类型,尤其是浮点数(float和double)和任意精度小数...
例如,在处理货币金额时,通常需要将一个`double`类型的数值保留到小数点后两位,并且以特定的格式显示出来,如将`15.00`这样的数值正确地显示为“15.00”。这不仅涉及到数值的精度控制,还涉及到数值的格式化输出。...
需要注意的是,float 是 8 位有效数字,第 7 位数字将会产生四舍五入。所以,如果一个 float 变量这样定义:float a=1.32344435; 则第 7 位将产生四舍五入(5 及 5 以下的都将舍去)。 在定义时,float 和 double ...
在13.5500除以5时,实际计算结果是13.5500000...,在四舍五入到第1位时,由于5之后的位数不为0,所以进位得到13.6。 BigDecimal还提供了其他一些方法,如`compareTo()`用于比较两个BigDecimal对象的大小,`scale()`...
总之,“java、c++表达式求值(带括号和小数点)”是一个涉及语言特性、数据结构(栈)以及算法(逆波兰表示法)的综合问题。在Java和C++中实现这样的功能,需要理解运算符优先级、表达式解析、浮点数运算以及异常...
首先,float是一种近似数值类型,它基于二进制浮点数表示法,这意味着它存在精度损失。float(n)类型中,n代表尾数的位数,影响了精度和存储需求。默认情况下,float等同于float(53),占用8字节,能表示最多15位小数...
在Java编程中,处理小数点后多余的零是一个常见的需求,特别是在进行数学计算或格式化输出时。小数点后的零可能会影响数据的显示效果,也可能导致不必要的存储开销。本篇文章将深入探讨如何在Java中有效地处理这个...
这里也使用了四舍五入技巧,通过乘以10000再除以10000来保留小数点后四位。 3. 练习3检查一个随机整数是否为奇数或偶数,根据结果执行不同的操作。对于奇数,计算平方根并转换为float类型,而对于偶数,计算平方。...
可以使用BigDecimal类或者Math类的相关方法进行四舍五入到指定的小数位。 25. 如何取得年月日,小时分秒? 可以使用Calendar类或者java.time包下的相关类来获取当前日期和时间的组成部分。 26. 如何取得从1970年到...