请问java提供啥方法实现将一个浮点数,四舍五入只保留小数点后两位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问java提供啥方法实现将一个浮点数,四舍五入只保留小数点后两位相关的知识,希望对你有一定的参考价值。

第一:从数据库读出时可以进行操作,将读出的数据进行处理后输出,这里可以用数据库提供的方法。这里不多提。
第二:也可以用JAVA进行处理,方法很多。
这里说两种吧:
第一
BigDecimal bd = new BigDecima("5.14881");
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP); System.out.println(bd);

第二
static double convert(double value)
long l1 = Math.round(value*100); //四舍五入
double ret = l1/100.0; //注意:使用 100.0 而不是 100
return ret;


public static void main(String[] args)
// BigDecimal bd = new BigDecimal("3.14159265");
// bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
double bd = convert(3.14559);

System.out.println(bd);
参考技术A (float)Math.round(yournum*100)/100;

yournum 就是你给出的浮点数,然后执行这句话就是你要的结果。以后提问题最好给点悬赏分。
参考技术B 需要你进行格式化一下:
String parten = "#.##";
DecimalFormat decimal = new DecimalFormat(parten);
String str= decimal.format(你要格式化的东西);本回答被提问者采纳
参考技术C 比如:

float a = (float)1.123;
DecimalFormat decimal = new DecimalFormat("#.##");
String result = decimal.format(""+a);

这样result就等于1.12了
参考技术D BigDecimal bd = new BigDecimal(0.7553f);
bd = bd.round(new MathContext(2));
System.out.println(bd);
---------------------------------------
注:
java.math.BigDecimal(float value)
java.math.MathContext(int precision)
BigDecimal.round(MathContext): BigDecimal
明白了吧?
另外引申一句:所有的数值处理都在java.math包中,所有的文本格式处理都在java.text包中,如果你希望输入保留两位小数的文本也可以用java.text包中的DecimalFormat类来处理。不过它返回的是字符串。

将浮点数四舍五入到目标C中的下一个整数?

【中文标题】将浮点数四舍五入到目标C中的下一个整数?【英文标题】:Round a float up to the next integer in objective C? 【发布时间】:2012-01-02 15:01:32 【问题描述】:

如何将浮点数四舍五入到目标 C 中的下一个整数值?

1.1 -> 2
2.3 -> 3
3.4 -> 4
3.5 -> 4
3.6 -> 4
1.0000000001 -> 2

【问题讨论】:

【参考方案1】:

Roundup StringFloat 备注(这不是最好的方法) 语言 - Swift & Objective C | xCode - 9.1 我所做的是转换 string > float > ceil > int > Float > String 字符串浮点数 10.8 -> 11.0 字符串浮点数 10.4 -> 10.0

斯威夫特

var AmountToCash1 = "7350.81079101"
AmountToCash1 = "\(Float(Int(ceil(Float(AmountToCash1)!))))"
print(AmountToCash1) // 7351.0


var AmountToCash2 = "7350.41079101"
AmountToCash2 = "\(Float(Int(ceil(Float(AmountToCash2)!))))"
print(AmountToCash2) // 7350.0

目标 C

NSString *AmountToCash1 = @"7350.81079101";
AmountToCash1 = [NSString stringWithFormat:@"%f",float(int(ceil(AmountToCash1.floatValue)))];

或者 你可以像这样Swift

制作一个自定义函数
func roundupFloatString(value:String)->String
  var result = ""
  result = "\(Float(Int(ceil(Float(value)!))))"
  return result

这么称呼它

    AmountToCash = self.roundupFloatString(value: AmountToCash)

目标 C

-(NSString*)roundupFloatString:(NSString *)value
    NSString *result = @"";
    result = [NSString stringWithFormat:@"%f",float(int(ceil(value.floatValue)))];
  return result;

这么称呼它

    AmountToCash = [self roundupFloatString:AmountToCash];

祝你好运!欢迎!支持我的回答!

【讨论】:

【参考方案2】:

只是无法评论大卫的回答。他的第二个答案不起作用,因为模不适用于浮点值。不应该是这样的

if (originalFloat - (int)originalFloat > 0) 
    originalFloat += 1;
    round = (int)originalFloat;

【讨论】:

【参考方案3】:

使用ceil() 函数。

有人在此处编写了 Objective C 的一些数学题:http://webbuilders.wordpress.com/2009/04/01/objective-c-math/

【讨论】:

【参考方案4】:

你想要天花板功能。像这样使用:

float roundedup = ceil(otherfloat);

【讨论】:

这表明我不相信我阅读的第一个文档。你是对的。 注意在函数中放置一个浮点数。 ceil((width/100.) * 7.) 有效。 ceil((width/100) * 7) 不是

以上是关于请问java提供啥方法实现将一个浮点数,四舍五入只保留小数点后两位的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何对浮点数进行四舍五入?

C语言如何实现输出浮点数小数点两位(四舍五入法),但若小数点最后位为零则舍去??

工具类---提供精确的浮点数运算

用C语言怎么实现浮点数的四舍五入,保留两位小数点

将浮点数四舍五入到目标C中的下一个整数?

C语言,一个浮点数,怎么四舍五入保留到个位数