www.rtmj.net > C语言小数变整数

C语言小数变整数

用系统自带的函数啊 有一个返回最大整数和最小整数

1 方法有强制转换、使用库函数round,ceil,floor等2 使用示例#include<stdio.h>#include<math.h> int main(){ float f = 12.5; int a = (int)f;//强制转换 直接取整 int b = round(f);//四舍五入取整 int c = ceil(f);//向上取整 int d = floor(f);//向下取整 printf("a=%d\nb=%d\nc=%d\nd=%d\n", a, b, c, d); getchar(); return 0; }3 运行结果

if(float-int(float)>0) float=int(float)+1就是将你要的数据去掉小数点后在比较一下,大于0就可以加1 不过接收差值的变量一定要是浮点的

先用int函数取得整数部分,然后用数字减去整数部分就是小数部分.

参见math.h中的库函数modf语法:#include double modf( double num,double *i );功能:函数将参数num 分割为整数和小数,返回小数部分并将整数部分赋给i.

printf("c is %d\n", c); // %d表示以整数输出,如果对应的变量是浮点数,会自动把小数部分截掉 如要输出小数应该改为 printf("c is %f\n", c); //单精度的 或者 printf("c is %lf\n", c ); //双精度的

x=(j-100)/2; 改为x=(j-100)/2.0;就可以了

参见math.h中的库函数modf 语法: #include <math.h> double modf( double num, double *i ); 功能: 函数将参数num 分割为整数和小数,返回小数部分并将整数部分赋给i.

#include <stdio.h> void main() { float j; int i; printf ("输入一个小数:"); scanf ("%f",&j); i=(int)j; printf ("j:%d",i); }可能是你电脑的问题.反正我是能运行的.而且结果是正确的

直接强制转换就可以了 float a=3.14; int b; b=(int)a;

网站地图

All rights reserved Powered by www.rtmj.net

copyright ©right 2010-2021。
www.rtmj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com