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 ); //双精度的

浮点型转换为字符型一般需要计算的,比如现在浮点型是414.15f 转换为字符型,那么就需要将这串数据转换为ascii码,单个数字单个数字转换:定义一个缓冲区:char buffer[6]用于存放这几个数字;接着:将浮点型放大,转换为整型:(int)(414.15 * 100) = 41415d 逐个取值:for(i=0;i{41415 % 10 = 5 ; //求除以10的余数,从各位开始取值10*10 = 100 ; //将除数放大10倍,一个循环后就编程了100,两个循环后是1000,以此求取各位上的数字;buffer[i] =余数+'0'; //将各个位上的数字转化成字符型,存入缓冲区 }

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); }可能是你电脑的问题.反正我是能运行的.而且结果是正确的

网站地图

All rights reserved Powered by www.rtmj.net

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