C语言如何用变量控制小数位数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何用变量控制小数位数相关的知识,希望对你有一定的参考价值。
比如变量c控制小数位数,写输出语句时printf(“%.clf",a)是错的,应该咋写啊
先把要控制的数字先乘,再取整,再除。比如:把123.4567保留两位
1:先把123.4567剩100等于12345.67
2:在数字前面加个(int)(12345.67)取整3:取整后数字变成12345
4:最后再把这个数除以100等于123.45 参考技术A 楼上解法怎么处理123.456-->123.456000
标准做法是这样的
说明:小数点“.”后面的“*”表示输出位数,具体的数据来自参数表。
printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个“*”代替那个常量,然后在后面提供变量给“*”。
例子
#include<stdio.h>
int main()
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%.*lf\n",c,a*1.0/b);
return 0;
参考技术B 回答
百度知道c语言如何控制小数位数可以在输出时,指定小数点后的有效位数,实现精确到若干位的效果。要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double)。在C语言中,使用格式化输出函数printf来实现输出。输出格式为%.NF1 %为格式化字符串的引导字符。2 .N表示指定显示N位小数。3 F为类型字符,对于float, F值为f, 对于double,F值为lf。举例:1 要输出float a=1.23234; 保留3位小数的写法为:printf("%.3f",a);2 输出double b=123.345232; 保留4为小数,写法为:printf("%.4lf",b);查看全文控制小数位数就是通过输出格式说明符来规定的。 举例说明如下: float f1=3.1415926;float f2=1234.1415926;float f3=124.1;printf("%3.4f", f1); // 输出结果为:_ _ 3.1416 ( _ 表示空格)printf("%3.4f", f2); // 输出结果为:1234.1416printf("%3.4f", f3); // 输出结果为:124.1000printf("%3.4f", f);中的3是控制f的整数部分按3位的固定位宽输出;4是按四舍五入的准则保留4位小数。 注:如果整数部分不足3位,则在前面补空格,超过3位,默认6位小数,例如输出的格式控制符%7.2f就是符号、整数、小数加上小数点共7位,小数2位,其他类推这个很简单。printf("%.2f\\n",x);当然x是float型的。输出就是两位小数。就是在f前+小数点+保留小数的位数。%.2f 其中的2表示小数点后2位数 自己用的时候自行替换该数字即可更多回答(2)广告2021-11-185赞·9,757浏览2018-03-301赞·5,494浏览2019-11-135赞·29,226浏览2019-10-22726浏览2019-11-20653浏览2019-11-07写回答
C语言,我想设置一个变量num,用来存储某个数据(位数在10位以上),但是不确定数据的类型,如何定义num?
存放的数据可能是整数类型(如5000000000),也可能是小数(如942379104.781),我用的_int64 num,只实现了整数的存储,小数怎么办呢?
联合(union)不知符不符合要求union mod
long i;
double f;
然后声明
union mod num;//num为mod类型联合变量
赋值的时候
num.i=100;//整数
num.f=100.23;//小数
联合在同一时间只能存储一个值,也就是说不是小数就是整数;
具体的可以百度一下 参考技术A 因为你存储的类型不确定(可能是整数型或小数型),所以建议使用struct 结构体,
先声明 typedef struct num
double d;
int i;
;
让后直接这样定义就行了
存储double型, num d.d=942379104.781;
存储int型, num i.i=5000000000;
顺便说一下,使用union可能导致数据的覆盖或保留。 参考技术B 可以用字符数组,或者统一转换成浮点型,用double存,整数转浮点可以等值转,浮点转整数可不行。。。。 参考技术C 你就用double类型的呗,这个也是64位的数据类型 参考技术D 浮点也有精度问题,和整数相互转换是有误差的。直接用字符串存储吧
以上是关于C语言如何用变量控制小数位数的主要内容,如果未能解决你的问题,请参考以下文章
C语言中输出时怎样控制小数点后的位数,请举例说明保留1、2、3、4位小数等等,谢谢