c语言中关于如何判断一个浮点小数有几位小数的问题我在编写C程序时遇到一个需要判断一个浮点小数有几位小数的问题,于是 我便想到用if((n*10)==(int)(n*10))来判断n是否是一位小数,同样用if ((

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 03:56:13
c语言中关于如何判断一个浮点小数有几位小数的问题我在编写C程序时遇到一个需要判断一个浮点小数有几位小数的问题,于是 我便想到用if((n*10)==(int)(n*10))来判断n是否是一位小数,同样用if ((

c语言中关于如何判断一个浮点小数有几位小数的问题我在编写C程序时遇到一个需要判断一个浮点小数有几位小数的问题,于是 我便想到用if((n*10)==(int)(n*10))来判断n是否是一位小数,同样用if ((
c语言中关于如何判断一个浮点小数有几位小数的问题
我在编写C程序时遇到一个需要判断一个浮点小数有几位小数的问题,于是 我便想到用if((n*10)==(int)(n*10))来判断n是否是一位小数,同样用if ((n*100)==(int)(n*100))来判断n是否是两位小数,于是我便在turbo C中写 了这么一段程序来测试 #include main() { float a; scanf("%f",&a); if((a*100)==(int)(a*100)) printf("Y\n"); else printf("N\n"); } 按理来说我输入任何一个小数部分不超过2位的数都应该输出“Y”,可是运 行时我只有输入0.25、0.75、0.5时输出的才是"Y",其它的都是“N”,这令 我百思不得其解.比如说我输入0.12,a*100就是12,而(int)(a*100)显然也 是12,因此if语句就是真的,但运行结果是输出“N”,按理说只有当我输 入多于两位小数(比如是0.235)才会是“N”,因为0.235*100=23.5,而 (int)(0.235*100)则是23,所以为假.将上面的100改为10的时候,只输入0 和0.5的时候是“Y”.我运行了好几遍都是这样,搞的我头都大了.在此我 能否提供更好的判断有几位小数的方法,我很着急!

c语言中关于如何判断一个浮点小数有几位小数的问题我在编写C程序时遇到一个需要判断一个浮点小数有几位小数的问题,于是 我便想到用if((n*10)==(int)(n*10))来判断n是否是一位小数,同样用if ((
这个问题的原因应该不是你程序错误的原因,而是存储的原因.如果你将一个整数存成一个浮点数(比如1),在内存里可能是1的小数点后跟了好几个0然后又有一个1.(类似于1.0000001)

c语言中关于如何判断一个浮点小数有几位小数的问题我在编写C程序时遇到一个需要判断一个浮点小数有几位小数的问题,于是 我便想到用if((n*10)==(int)(n*10))来判断n是否是一位小数,同样用if (( C语言中 小数和浮点数的区别 C语言 如何判断一个浮点数是不是整数(说法不太严格) C程序中怎样判断一个浮点数小数部分的位数 C中 如何将浮点数转化成整数,如何判定一个浮点数是否等于其整数部分?C语言中 如何将浮点数转化成整数,如何判定一个浮点数是否等于其整数部分? VB中如何读取一个浮点数中的小数部分请问那位大侠知道VB中有没有一个函数可以直接读取一个浮点数的小数部分,还有如何判断一个数是否含有小数部分? 在C语言中,如何将一个浮点数变换成整数? 在C语言中可不可以简单的把浮点数看做小数? 在C语言中单精度浮点和双精度浮点小数点后有几位小数还有在VFP中双精度和单精度分别有几位小数 C语言 一个flaot浮点型变量f 小于零的 if 判断怎么写 C语言中怎样判断输入的是整数还是浮点数 C语言中怎样判断输入的是整数还是浮点数 C语言中,对浮点数求绝对值的库函数是什么?就是怎么对一个浮点数求绝对值 c语言如何判断一个元素是否在集合中 C语言中单精度浮点数和双精度分别如何表示?有什么差别? C语言中如何把浮点数1.234567转换成整数123? C语言中如何用实验的方法确定double型浮点数能精确到多少位小数? 怎么将c语言中一个浮点型数据的整数部分与小数部分提取出来如题,就是,就是如果13.215,提取出来13与215.注,小数部分长度不确定