2 yue1liang1chuan yue1liang1chuan 于 2013.07.10 17:22 提问

Android四舍五入float类型问题

我的测试结果不一样:

public void testRoundFloat() {
    final NumberFormat format = NumberFormat.getNumberInstance();
    format.setMaximumFractionDigits(2);
    format.setMinimumFractionDigits(2);
    format.setRoundingMode(RoundingMode.HALF_UP);
    assertEquals("102,345.56", format.format(102345.556f));
}

public void testRoundDouble() {
    final NumberFormat format = NumberFormat.getNumberInstance();
    format.setMaximumFractionDigits(2);
    format.setMinimumFractionDigits(2);
    format.setRoundingMode(RoundingMode.HALF_UP);
    assertEquals("102,345.56", format.format(102345.556d));
}

第一次测试四舍五入浮点数失败,因为格式是xxx.55,第二次测试四舍五入double类型成功了。

我是在Android4.2.2版本运行的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JAVA如何把一个float四舍五入到小数点后2位,以及多位
JAVA如何把一个float四舍五入到小数点后2位,4位,或者其它指定位数.         以前以为很容易,一直没在意,今天突然用到了,才发现,系统没有这样的函数.狂晕,同事们用的方法为,先转成String,再取其中几位,再转成float型,(如:String.valueOf(c).substring(0,String.valueOf(c).indexOf(".")   +   3)): 我觉
Android开发教程--对float数据取整
向上取整:Math.ceil()      只要有小数都+1 向下取整:Math.floor()    不取小数 四舍五入:Math.round()  四舍五入
float巧妙的四舍五入
float value = 2.237; int ret = (int)(value + 0.5f);//加 0.5 向下取整
浮点类型数据四舍五入保留两位小数
-(float)roundFloat:(float)price{    return (floorf(price*100 +0.5))/100; } 这个基本能够确保最后是四舍五入并且能保留两位小数。 下面再说说这个曲折的过程,首先我想到的是用ios里面自带的roud方法, -(float)roundFloat:(float)price{    return roundf(price
QT 对于float类型四舍五入
1.使用QT自带的函数QString::asprintfQString::asprintf("%.2f", 123.12545)  = “123.13”//格式化,自动四舍五入2.只保留整数位,四舍五入float value = 1.237; int ret = (int)(value + 0.5f);//加 0.5 向下取整 ...
DecimalFormat 四舍五入Float类型的坑
今天又踩了一个坑,使用DecimalFormat来完成四舍五入,但是传入的是float类型,几轮测试才发现一个问题,传入的float会被转为double类型,大家都知道float是4位,double是8位,强转肯定会造成进度丢失。
iOS float 四舍五入保留后两位
iOS float 四舍五入保留后两位
iOS float小数四舍五入
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"----%@---",[self decimalwithFormat:@"0.0000"
float转int 四舍五入问题
最近碰到一例客户投诉某款产品某个参数显示误差的问题,经检查发现是软件中浮点数(float)转化为整型数(int)时候未四舍五入造成的。     虽说是小问题但也值得重视,如果是航天飞机/月球探测仪(纯属YY)的软件中出了误差可能后果不堪设想。   /**  问题重现, float强制转化为int, C代码片段 **/ int i; float f = 12.52;i = (int)
SQL数字类型转换和四舍五入
cast和convert用于数据类型转换,round用于四舍五入取近似字,numeric用于精确设置数字精度(长度)和小数位数。 T-SQL: CAST and CONVERT Explicitly converts an expression of one data type to another. CAST and CONVERT provide similar functionalit