| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4120 人关注过本帖
标题:[求解] 只想把数值(保留小数点后两位),存到变数里(不是用printf)
只看楼主 加入收藏
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:4 
回复 10楼 timtimN
这样看看:
#include<stdio.h>
#include<stdlib.h>

int main()
{
    float kt = 40.536738;
    char s[20];
    sprintf(s,"%.2f\n",kt);
    printf("%s\n", s);
    float target = atof(s);
    printf("%f\n", target);
    return 0;
 }
2017-07-26 11:34
zzr1024
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2017-7-25
收藏
得分:4 
回复 10楼 timtimN
#include<stdio.h>
#include<stdlib.h>
void main()
{
    float target = 0;
    float kt = 40.536738;
    char* s;
    s = (char *)malloc (20 *sizeof (char));   //分配一定的内存空间
    sprintf(s, "%.2f", kt);
    printf("%s\n", s);
    target = atof(s);
    printf("%f\n", target);
}
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2017-7-26 12:37编辑过]


/* bug是什么东东 */
2017-07-26 12:28
zzr1024
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2017-7-25
收藏
得分:0 
回复 7楼 wp231957
#include<stdio.h>

float treat(float kp);

void main()
{
 float k;
 k = treat(40.536738);
 printf("%f\n",k);
}

float treat(float kp)
{
 int a = (int)(kp * 1000);
 float b = (a / 10.0);
 int c = (int)(b + 0.5);      //这里挺好的,我差点把四舍五入漏掉了
 float d = (c /100.0);
 return d;
}
图片附件: 游客没有浏览图片的权限,请 登录注册

/* bug是什么东东 */
2017-07-26 12:42
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
那非要用%f显示 谁也没办法   

DO IT YOURSELF !
2017-07-26 13:34
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
printf("%d.%d", 40, 54);
2017-07-26 19:32
timtimN
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-7-25
收藏
得分:0 
谢谢以上各位的帮忙
2017-07-27 08:28
GBH1
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:112
专家分:510
注 册:2017-6-13
收藏
得分:0 
哦,忘了给指针分配空间了,你试试char s[10] = {0};
2017-07-27 11:26
danielxiang
Rank: 2
等 级:论坛游民
帖 子:8
专家分:22
注 册:2017-7-27
收藏
得分:4 
你的意思是想把一个很长的小数  四舍五入保留为两位有效数字吗?
比如说:
a=3.14159  变成  a=3.15
b=6.73856  变成  b=6.74
是要这样的情况吗?

程序代码:
#include<stdio.h>
int main()
{
    double a;
    printf("请输入一个数字:");
    scanf("%lf",&a);
    a=(int)((a+0.005)*100)/100.0;
    printf("四舍五入后的数字是:%lf\n",a);//可以设置输出是%.2lf 输出的就是两位小数的数字了
    return 0;
}


[此贴子已经被作者于2017-7-27 16:43编辑过]

2017-07-27 15:41
快速回复:[求解] 只想把数值(保留小数点后两位),存到变数里(不是用printf)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038910 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved