标题:[求解] 只想把数值(保留小数点后两位),存到变数里(不是用printf)
只看楼主
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册: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: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
那非要用%f显示 谁也没办法   

DO IT YOURSELF !
2017-07-26 13:34
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479604-1-1.html




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

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