C语言浮点型数据能不能取余?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言浮点型数据能不能取余?相关的知识,希望对你有一定的参考价值。
int a=5,b;
b=a%3;
此时的b为2。然后我想问一下,如果 float a=5.2; 那 a%3为多少?
还有,一个浮点型的数据如何才能得到其各位,十位,百位上的值?先把它强制转换成int型,然后取余 % ,这样行不行?
C语言浮点型数据不能取余。
一个浮点型的数据,转化成整形数据后可以通过除法与取余来获得其个位、十位、百位。先把它强制转换成int型,然后取余 %是可行的。
例如浮点型数据521.63,转化成整形后是521,对10取余可以获取个位数1,对100取余再除以10取整可以获得十位数2,除以100取整可以获得百位数5。
扩展资料:
取余运算的运算律:
1、(a + b) % p = (a % p + b % p) % p
2、(a - b) % p = (a % p - b % p) % p
3、(a * b) % p = (a % p * b % p) % p
4、a ^ b % p = ((a % p)^b) % p
5、((a+b) % p + c) % p = (a + (b+c) % p) % p (5)
6、((a*b) % p * c)% p = (a * (b*c) % p) % p (6)
7、(a + b) % p = (b+a) % p
8、(a * b) % p = (b * a) % p
9、(a+b) % p = ( a % p + b % p ) % p
10、((a +b)% p * c) % p = ((a * c) % p + (b * c) % p) % p
参考资料来源:百度百科-浮点型数据
参考资料来源:百度百科-取模运算
参考技术A可以,但不能用操作符%,而要用库函数fmodf、fmod或fmodl。因为%是整型取余操作符,要求两边都是整型数才行,结果也是整型;fmodf用于float型变量操作,fmod用于double型变量操作,fmodl用于long double型变量操作。以下以fmod举例:
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"
#include "math.h"
int main(void)
double f=3.3,q=2.2;
printf("%f\\n",fmod(f,q));
return 0;
运行结果是1.100000。
参考技术B a%3非法,取余要求两个都是整型int转换后是可以的本回答被提问者采纳 参考技术C 可以先强制转化后取余。不能直接取余。 参考技术D 浮点型数据不可取余数
你的思路是对的,可以实现.
单片机C语言中如何将浮点型变量转换成字符串输出
我想用单片机写一个计算器,用1602显示,但是怎样才能将运算结果换算成字符串输出呢?
但是计算的结果应该是一个变量啊,不能用具体的数字做解 ,应该可以做的跟家简单的 啊
sprintf()怎么实现可以具体一点吗?
unsigned int a=4.234*100;
unsigned char s[5];
s[0]=a/100+0x30;
s[1]='.'
s[1]=a%100/10+0x30;
s[2]=a%10+0x30;本回答被提问者采纳 参考技术B 计算的结果(小数)比如0.33 依次显示‘0’‘.’‘3’‘3’不就行了。 参考技术C 用sprinft()
函数实现 参考技术D 建立表格,查表输出
以上是关于C语言浮点型数据能不能取余?的主要内容,如果未能解决你的问题,请参考以下文章