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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言怎么实现浮点数的四舍五入,保留两位小数点相关的知识,希望对你有一定的参考价值。

C语言怎么实现浮点数的四舍五入,保留两位小数的设计过程为:

    定义浮点点数变量df,输入浮点数

    浮点数df扩大100倍

    浮点数df增加0.5

    利用floor()函数得到最接近df数,但不大于df的整数(完成四舍五入)。不能用int强制转换,否则,数据超过int范围就会出现错误。

    浮点数df缩小100倍得到有两位小数的浮点数

    按%.2f输出结果。

参考代码:

#include <stdio.h>
#include <math.h>
void main()

    double df=0;
    printf("input d: "); scanf("%lf", &df );
    df *= 100 ;
    df += 0.5 ;
    df =floor(df);
    df /= 100;
    printf("d=%.2f\\n", df );

参考技术A 加0.5强制转int。这是取到整数的方法。其他位数道理差不多。2位的话你先乘100,加0.5强制转int,然后除回100。注意类型转换。除100要转double。 参考技术B float a=10.123;
a=((int)((a*100+5)/100))/100.0;//这个值应该就是保留两位小数点的值吧本回答被提问者采纳
参考技术C printf("%4.2f",a);类似的,前面一个4是字的位数,后面一个2是两位小数

请问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语言,一个浮点数,怎么四舍五入保留到个位数

C语言四舍五入保留两位小数

C语言四舍五入保留两位小数

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

c语言如何让输出结果精确到两位小数

C语言编写函数,对浮点数保留两位小数,对第三位四舍五入。程序如下 #include<stdio.h