C语言中,一个整型对一个浮点型取余是怎样运算的? C语言中,一个整型对一个浮点型取余是怎样运算的?

c\u8bed\u8a00\u4e2d\u6574\u578b\u548c\u6d6e\u70b9\u578b\u6df7\u5408\u8fd0\u7b97\u7684\u7ed3\u679c\u662f\u4ec0\u4e48\u7c7b\u578b

c\u8bed\u8a00\u4e2d\u6574\u578b\u548c\u6d6e\u70b9\u578b\u6df7\u5408\u8fd0\u7b97\u7684\u7ed3\u679c\u4e3adouble\u578b\uff08\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u7c7b\u578b\uff09\u3002
c\u8bed\u8a00\u4e2d\u5982\u679c\u4e00\u4e2a\u8fd0\u7b97\u7b26\u4e24\u8fb9\u7684\u8fd0\u7b97\u6570\u7c7b\u578b\u4e0d\u540c\uff0c\u5148\u8981\u5c06\u5176\u8f6c\u6362\u4e3a\u76f8\u540c\u7684\u7c7b\u578b\uff0c\u5373\u8f83\u4f4e\u7c7b\u578b\u8f6c\u6362\u4e3a\u8f83\u9ad8\u7c7b\u578b\uff0c\u7136\u540e\u518d\u53c2\u52a0\u8fd0\u7b97\uff0c\u8f6c\u6362\u89c4\u5219\uff1afloat\uff08\u6d6e\u70b9\u578b\uff09\u8f6c\u5316\u4e3adouble\uff08\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u7c7b\u578b\uff09\u3001int\uff08\u6574\u578b\uff09\u8f6c\u4e3aunsigned\uff08\u65e0\u7b26\u53f7\u6574\u578b\uff09\u8f6c\u4e3along\uff08\u957f\u6574\u578b\uff09\u8f6c\u4e3a\uff08\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u7c7b\u578b\uff09\u3002
\u56e0\u6b64\uff0cc\u8bed\u8a00\u4e2d\u6574\u578b\u548c\u6d6e\u70b9\u578b\u6df7\u5408\u8fd0\u7b97\uff0c\u53ea\u80fd\u662f\u6574\u578b\u548c\u6d6e\u70b9\u578b\u540c\u65f6\u5f3a\u5236\u8f6c\u6362\u4e3a\u76f8\u540c\u7684double\u578b\uff08\u53cc\u7cbe\u5ea6\u6d6e\u70b9\u7c7b\u578b\uff09\u3002\u5982\u4e24\u4e2afloat\u578b\u6570\u53c2\u52a0\u8fd0\u7b97\uff0c\u867d\u7136\u5b83\u4eec\u7c7b\u578b\u76f8\u540c\uff0c\u4f46\u4ecd\u8981\u5148\u8f6c\u6210double\u578b\u518d\u8fdb\u884c\u8fd0\u7b97\uff0c\u7ed3\u679c\u4ea6\u4e3adouble\u578b\u3002

\u6269\u5c55\u8d44\u6599\uff1a
\u5728C\u8bed\u8a00\u4e2d\uff0c\u81ea\u52a8\u7c7b\u578b\u8f6c\u6362\u9075\u5faa\u4ee5\u4e0b\u89c4\u5219\uff1a
1\u3001\u82e5\u53c2\u4e0e\u8fd0\u7b97\u91cf\u7684\u7c7b\u578b\u4e0d\u540c\uff0c\u5219\u5148\u8f6c\u6362\u6210\u540c\u4e00\u7c7b\u578b\uff0c\u7136\u540e\u8fdb\u884c\u8fd0\u7b97\u3002
2\u3001\u8f6c\u6362\u6309\u6570\u636e\u957f\u5ea6\u589e\u52a0\u7684\u65b9\u5411\u8fdb\u884c\uff0c\u4ee5\u4fdd\u8bc1\u7cbe\u5ea6\u4e0d\u964d\u4f4e\u3002\u5982int\u578b\u548clong\u578b\u8fd0\u7b97\u65f6\uff0c\u5148\u628aint\u91cf\u8f6c\u6210long\u578b\u540e\u518d\u8fdb\u884c\u8fd0\u7b97\u3002\u82e5\u4e24\u79cd\u7c7b\u578b\u7684\u5b57\u8282\u6570\u4e0d\u540c\uff0c\u8f6c\u6362\u6210\u5b57\u8282\u6570\u9ad8\u7684\u7c7b\u578b\u3002\u82e5\u4e24\u79cd\u7c7b\u578b\u7684\u5b57\u8282\u6570\u76f8\u540c\uff0c\u4e14\u4e00\u79cd\u6709\u7b26\u53f7\uff0c\u4e00\u79cd\u65e0\u7b26\u53f7\uff0c\u5219\u8f6c\u6362\u6210\u65e0\u7b26\u53f7\u7c7b\u578b\u3002
3\u3001\u6240\u6709\u7684\u6d6e\u70b9\u8fd0\u7b97\u90fd\u662f\u4ee5\u53cc\u7cbe\u5ea6\u8fdb\u884c\u7684\uff0c\u5373\u4f7f\u4ec5\u542bfloat\u5355\u7cbe\u5ea6\u91cf\u8fd0\u7b97\u7684\u8868\u8fbe\u5f0f\uff0c\u4e5f\u8981\u5148\u8f6c\u6362\u6210double\u578b\uff0c\u518d\u4f5c\u8fd0\u7b97\u3002
4\u3001char\u578b\u548cshort\u578b\u53c2\u4e0e\u8fd0\u7b97\u65f6\uff0c\u5fc5\u987b\u5148\u8f6c\u6362\u6210int\u578b\u3002
5\u3001\u5728\u8d4b\u503c\u8fd0\u7b97\u4e2d\uff0c\u8d4b\u503c\u53f7\u4e24\u8fb9\u91cf\u7684\u6570\u636e\u7c7b\u578b\u4e0d\u540c\u65f6\uff0c\u8d4b\u503c\u53f7\u53f3\u8fb9\u91cf\u7684\u7c7b\u578b\u5c06\u8f6c\u6362\u4e3a\u5de6\u8fb9\u91cf\u7684\u7c7b\u578b\u3002\u5982\u679c\u53f3\u8fb9\u91cf\u7684\u6570\u636e\u7c7b\u578b\u957f\u5ea6\u6bd4\u5de6\u8fb9\u957f\u65f6\uff0c\u5c06\u4e22\u5931\u4e00\u90e8\u5206\u6570\u636e\uff0c\u8fd9\u6837\u4f1a\u964d\u4f4e\u7cbe\u5ea6\uff0c\u4e22\u5931\u7684\u90e8\u5206\u6309\u56db\u820d\u4e94\u5165\u5411\u524d\u820d\u5165\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-C\u8bed\u8a00\u7c7b\u578b\u5f3a\u5236\u8f6c\u6362
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-\u81ea\u52a8\u7c7b\u578b\u8f6c\u6362

\u4e0d\u662f\uff0c\u5982\u679c\u5747\u4e3a\u6574\u578b\u90a3\u6240\u5f97\u7ed3\u679c\u4e5f\u4e3a\u6574\u578b\uff0c\u5373\u4f7f\u4e0d\u80fd\u6574\u9664\u53ea\u53d6\u6574\u6570\u90e8\u4efd\u3002\u5982\u679c\u9664\u6570\u6216\u88ab\u9664\u6570\u4e2d\u6709\u4e00\u4e2a\u4e3a\u6d6e\u70b9\u578b\u6216DOUBLE\u578b\u7ed3\u679c\u5c31\u4f1a\u662f\u7cbe\u5ea6\u66f4\u9ad8\u7684\u90a3\u7c7b

由于C中提供的取模(%)是用来求两个整数相除的余数,所以不存在一个整数使用%对浮点数取余数,系统编译不过。要计算一个整数对浮点数取余数,可以使用fmod函数,代码如下,

#include <stdio.h>
#include <math.h>
//输出4对0.3取余的结果
int main(int argc, char *argv[])
{
printf("%d\n",7%1/2);//由于%和/优先级相同,从左向右执行,7%1为0,0/2为0
printf("%lf\n",fmod(4,0.3));//输出0.100000
return 0;
}

double fmod( double x, double y );函数返回参数x/y的余数,需要添加math.h头文件。

你举的例子不是整型对浮点做%.

7%1/2等价于 (7%1)/2 = 0/2 = 0;

如果是想问 7%0.5,那是编译错误,%操作符不能用于浮点数

不是,如果均为整型那所得结果也为整型,即使不能整除只取整数部份。如果除数或被除数中有一个为浮点型或DOUBLE型结果就会是精度更高的那类

首先说说明下,取余运算是能是2个整数来运算。在表达式中同优先级的运算符是从左往右依次运算的,就像你这个7%1/2最终是等于0,7%2/4刚等于0

不是对浮点型取余,7%1/2是先执行7%1然后执行0/2

  • 鍏充簬C璇█鐨鏁村瀷鍜娴偣鍨涔嬮棿鐨勫己鍒惰浆鎹笌杈撳嚭鏍煎紡绗﹂棶棰
    绛旓細杈撳嚭缁撴灉锛0 1431655765 0.000000 0.333333 鍘嬭繘鏍堢殑瀛楄妭绫诲瀷鍒嗗埆涓篿nt锛宒ouble锛宨nt锛宒ouble(4,8,4,8)锛0锛1.0/3锛0锛1.0/3 鑰屽嚱鏁伴噷闈娇鐢ㄧ殑瀛楄妭鍒嗗埆涓篿nt锛宨nt锛float锛宖loat锛4,4,8,8锛夊緢鏄剧劧锛屽湪绗簩涓綅缃紱浼氬彇1.0/3double绫诲瀷鐨勫墠4涓瓧鑺傦紱鐒跺悗杩樺墿涓1.0/3double鐨...
  • 鏁村瀷闄や互娴偣鍨鏄粈涔堝瀷?
    绛旓細娴偣鍨嬬簿搴﹂珮浜庢暣褰紝鍥犳鏁村舰鏁板厛鑷姩琚浆鎹㈡垚娴偣鍨嬶紝鍐嶈繘琛岄櫎娉曡繍绠楋紝鏈缁堢粨鏋滀篃涓烘诞鐐瑰瀷
  • c璇█涓灏涓涓诞鐐瑰瀷璧嬪肩粰鏁村瀷鏃,浼氫笉浼氬洓鑸嶄簲鍏?
    绛旓細c璇█涓灏涓涓诞鐐瑰瀷璧嬪肩粰鏁村瀷鏃讹紝涓嶄細鍥涜垗浜斿叆锛屼細鐩存帴鑸嶅幓灏忔暟閮ㄥ垎鐨勬暟鎹紝涔熷彲浠ヨ涓烘槸鎵ц浜嗕笅鍙栨暣杩愮畻銆傚皢娴偣鏁(鍗曞弻绮惧害)杞崲涓鏁存暟鏃讹紝灏嗚垗寮冩诞鐐规暟鐨勫皬鏁伴儴鍒嗭紝 鍙繚鐣欐暣鏁伴儴鍒嗐傚皢鏁村瀷鍊艰祴缁欐诞鐐瑰瀷鍙橀噺锛屾暟鍊间笉鍙橈紝鍙皢褰㈠紡鏀逛负娴偣褰㈠紡锛 鍗冲皬鏁扮偣鍚庡甫鑻ュ共涓0銆傛敞鎰忥細璧嬪兼椂鐨勭被鍨嬭浆鎹...
  • c璇█涓,鏁村瀷闄や互鏁村瀷寰楀埌娴偣鍨,鏈鍚庡啀璧嬬粰娴偣鍨,鎬庝箞鍔
    绛旓細鍥炵瓟锛氫妇渚: int a=3,b=5; double c=0; c=a/b; //姝ゆ椂c=3/5=0; c=a/(double)b; 姝ゆ椂c=3/5.0=0.6; 璇存槑: 褰 鏁村瀷闄ゆ暣鍨 鍙兘寰楀埌鏁村舰,闇瑕佸己鍒惰浆鎹㈡垚娴偣 褰 闄ゆ暟鎴栬闄ゆ暟鏈夋诞鐐规椂,鑷姩杞崲鎴愭诞鐐
  • c璇█涓灏涓涓诞鐐瑰瀷璧嬪肩粰鏁村瀷鏃,浼氫笉浼氬洓鑸嶄簲鍏?
    绛旓細c璇█涓灏涓涓诞鐐瑰瀷璧嬪肩粰鏁村瀷鏃讹紝涓嶄細鍥涜垗浜斿叆锛屼細鐩存帴鑸嶅幓灏忔暟閮ㄥ垎鐨勬暟鎹紝涔熷彲浠ヨ涓烘槸鎵ц浜嗕笅鍙栨暣杩愮畻銆傚皢娴偣鏁(鍗曞弻绮惧害)杞崲涓鏁存暟鏃讹紝灏嗚垗寮冩诞鐐规暟鐨勫皬鏁伴儴鍒嗭紝 鍙繚鐣欐暣鏁伴儴鍒嗐傚皢鏁村瀷鍊艰祴缁欐诞鐐瑰瀷鍙橀噺锛屾暟鍊间笉鍙橈紝鍙皢褰㈠紡鏀逛负娴偣褰㈠紡锛 鍗冲皬鏁扮偣鍚庡甫鑻ュ共涓0銆傛敞鎰忥細璧嬪兼椂鐨勭被鍨嬭浆鎹...
  • c璇█涓灏涓涓诞鐐瑰瀷璧嬪肩粰鏁村瀷鏃,浼氫笉浼氬洓鑸嶄簲鍏?
    绛旓細缁撹鏄紝褰撳湪C璇█涓灏娴偣鍨鏁板艰祴鍊肩粰鏁村瀷鍙橀噺鏃讹紝纭疄涓嶄細杩涜鍥涜垗浜斿叆锛岃屾槸鐩存帴涓㈠純灏忔暟閮ㄥ垎锛屾墽琛岀殑鏄笅鍙栨暣鎿嶄綔銆傝繖绉嶈浆鎹㈠苟涓嶆槸绠鍗曠殑鍥涜垗浜斿叆锛岃屾槸鎸夌収鏁存暟鐨勮鍒欒繘琛屾埅鏂備緥濡傦紝娴偣鏁5.4鍜5.6鍦ㄨ祴鍊肩粰鏁村瀷鍚庯紝閮戒細鍙樹负5锛屽彧淇濈暀鏁存暟閮ㄥ垎銆傚叿浣撴潵璇达紝鏃犺鏄崟绮惧害娴偣鍨嬭繕鏄弻绮惧害娴偣鍨...
  • c璇█涓灏涓涓诞鐐瑰瀷璧嬪肩粰鏁村瀷鏃,浼氫笉浼氬洓鑸嶄簲鍏?
    绛旓細缁撹鏄紝褰撳湪C璇█涓灏娴偣鍨鏁板艰祴鍊肩粰鏁村瀷鍙橀噺鏃讹紝纭疄涓嶄細杩涜鍥涜垗浜斿叆锛岃屾槸鐩存帴涓㈠純灏忔暟閮ㄥ垎锛屾墽琛岀殑鏄笅鍙栨暣鎿嶄綔銆傝繖绉嶈浆鎹㈠苟涓嶆槸绠鍗曠殑鍥涜垗浜斿叆锛岃屾槸鎸夌収鏁存暟鐨勮鍒欒繘琛屾埅鏂備緥濡傦紝娴偣鏁5.4鍜5.6鍦ㄨ祴鍊肩粰鏁村瀷鍚庯紝閮戒細鍙樹负5锛屽彧淇濈暀鏁存暟閮ㄥ垎銆傚叿浣撴潵璇达紝鏃犺鏄崟绮惧害娴偣鍨嬭繕鏄弻绮惧害娴偣鍨...
  • C璇█涓暣鍨鍜娴偣鍨鍙互鐩存帴姣旇緝澶у皬鍚?姣斿int i;if(i>1.5...
    绛旓細褰撶劧鍙互锛屾渶濂戒笉瑕佸崟鐙瘮杈冩槸鍚︾浉绛夛紝搴斾负鐪嬩技鐩哥瓑鐨勪袱涓诞鐐鏁颁笉涓瀹氱浉绛夈
  • c璇█涓涓や釜涓嶅悓绫诲瀷鐨勬暟,姣斿鏁村舰鍜娴偣鍨鐨勬暟鑳芥瘮杈冨ぇ灏忓悧???_鐧...
    绛旓細鍙互鐨勩傘傘俰nclude <stdio.h> main(){ int i;float s;scanf("%d%f",&i,&s);if (i>s)printf("i>s");else printf("i
  • c璇█ 鍚娴偣鍨鍙橀噺閲杈撳叆鏁村瀷鏁版嵁
    绛旓細涓嶄竴鏍锋淮锛岃櫧鐒朵綘杈撳叆鐨勬槸%d锛屼絾鏄綋瀛樺埌a锛宐锛宑閲岄潰浠ュ悗鍊煎氨鍙樹簡锛屽洜涓float鍗4涓瓧鑺锛屾暣鍨鍗2涓瓧鑺傦紝瀛樼殑鏃跺欎細鍑虹幇閿欒锛
  • 扩展阅读:c中浮点类型包括哪三种 ... 整型加浮点型是什么 ... 浮点型和整型 ... 比float还大的浮点类型 ... c语言浮点型除以整形 ... 长整型和浮点型 ... c语言浮点数规则 ... c语言 浮点数转整型 ... c语言中将整数变为浮点数 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网