wwfl.net
当前位置:首页 >> C FloAt 保留两位小数 >>

C FloAt 保留两位小数

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);}

网站首页 | 网站地图
All rights reserved Powered by www.wwfl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com