1、float y =8.60000000000000000; string s = y.tostring("f2");2、%.2f是保留两位小数%.3f是保留三位小数3、c#里面有个math.round()函数,math.round(a,2)就是保留2位小数
你没说什么编程语言,以c为例:printf("%.2f",a);对变量a保留两位小数printf("%.3f",a);对变量a保留三位小数
float都保存的是2进制近似值,所以不存在保留十进制几位小数的情况.所谓保留几位小数,都是用于十进制显示时的显示格式.System.out.format("%.2f", 0.12345f); //显示时保留2位小数System.out.println(String.format("%.2f", 0.12345f));//或,转换成2位小数字符串后显示.
你要知道,float是浮点数,无法精确表示一个数值.所以你根本不可能在float内部精确表示一些小数,比如0.7或者你说的0.32.有兴趣的话可以研究下IEEE754标准,这个标准规定了电脑中浮点数如何存储,看完了你就会明白,这些小数在电脑
这个办法很多啦,大部分编程语言都提供保留小数的函数,调用下就行,或者你自己写个算法也很简单,大致给你个思路,你把你的float*100,然后转成int类型,多余的小数位就没有了,然后再/100就是你要的保留两位小数的效果了.
c#里面有个Math.Round()函数,Math.Round(a,2)就是保留2位小数
float(也就是单精度浮点),默认有效位数7位.图中的2.000000,有效数字就是7位单精度,float,32位,有效位数为7位双精度,double,64位,有效位数15位
可以在输出的时候限制小数点位数.1、当输出单精度浮点型float变量f时,可以用printf("%.2f", f);来使输出结果保留两位有效数字.其中.2就是代表保留两位,如果要保留三位就是%.3f.用%.0f就是只输出整数.2、如果是双精度浮点数double,就需要用%.2lf来使输出结果保留2位小数.
下面是带四舍五入的,如果不需要去掉后面的+0.5f就行float a=0.12345f; int t=(int)(a*100+0.5f); a=(float)t/100;
# include void main(){ float a,b,c; scanf("%f%f",&a,&b); c=a; a=b; b=c; printf("%f%f",a,b);}