VC中四舍五入函数?在线等待

clzzcl 2002-07-04 05:48:45
VC中四舍五入函数?在线等待
...全文
932 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
clzzcl 2002-07-04
  • 打赏
  • 举报
回复
编绎通过了,可是。唉!还是不行。大哥们!输出为0.0000。我用VC++6.0的编绎器。
shilong 2002-07-04
  • 打赏
  • 举报
回复
应该是
char str[255];
float a,b;
wsprintf(str,"%.nf",a);
b=atof(str);
shilong 2002-07-04
  • 打赏
  • 举报
回复
如果在TC下:
char str;
float a,b;
wsprintf(str,"%.nf",a);//n是你要四舍五入得到的位数
b=atof(str);
shilong 2002-07-04
  • 打赏
  • 举报
回复
#include <stdlib.h>
#include <stdio.h>
clzzcl 2002-07-04
  • 打赏
  • 举报
回复
不行呀!源程序如下还是编为EXE时通不过,
#include<iostream.h>
#include <afx.h>

void main()
{
CString str;
double a,b;
a=0.456;
str.Format("%.2f",a);//n是你要四舍五入得到的位数
//b=atof(str);
b=atof((LPCTSTR)str);
cout<<b;
}

出错提示为
--------------------Configuration: roundtest - Win32 Debug--------------------
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/roundtest.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

roundtest.exe - 3 error(s), 0 warning(s)

在正等待。。。。。。我是做在DLL中调用一下,不做输出。
guxuefeng 2002-07-04
  • 打赏
  • 举报
回复
int(a+0.5)
bugsalwaysare 2002-07-04
  • 打赏
  • 举报
回复
<b=atof(str);

应为 b=atof((LPCTSTR)str)
这个方法应该可以
clzzcl 2002-07-04
  • 打赏
  • 举报
回复
错误为nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
clzzcl 2002-07-04
  • 打赏
  • 举报
回复
用Math.h也不行
clzzcl 2002-07-04
  • 打赏
  • 举报
回复
如果不用MFC,我该怎么办,楼上的不行无Round函数,还有用
CString str;
float a,b;
str.Format("%.nf",a);//n是你要四舍五入得到的位数
b=atof(str);
编为EXE时出错
无聊客 2002-07-04
  • 打赏
  • 举报
回复
可能要#include "math.h"
无聊客 2002-07-04
  • 打赏
  • 举报
回复

pi = 3.14159
MyVar = Round(pi, 2) ' MyVar contains 3.14.
clzzcl 2002-07-04
  • 打赏
  • 举报
回复
我要保留二位小数点
shilong 2002-07-04
  • 打赏
  • 举报
回复
如果你要四舍五入得到整数的话:
就加0.5再取整就是了
float a;
int b;
b=a+0.5;
如果你要四舍五入得到浮点数的话:
CString str;
float a,b;
str.Format("%.nf",a);//n是你要四舍五入得到的位数
b=atof(str);

shilong 2002-07-04
  • 打赏
  • 举报
回复

如果取整要得到浮点数
CString str;
float a,b;
str.Format("%.nf",a);
b=atof(str);
linxinru 2002-07-04
  • 打赏
  • 举报
回复
int round(double d)
{
d=d+0.5D;
return (int)d;
}
pursuer_zhao 2002-07-04
  • 打赏
  • 举报
回复
int Myfun(double d)
{
int i=0;
i=(int)d;
if((d-i)>=0.5)
{
return i+1;
}
else
{
return i;
}
}
无聊客 2002-07-04
  • 打赏
  • 举报
回复
用round试试,,,查查看MSDN,,好象是
shilong 2002-07-04
  • 打赏
  • 举报
回复
如果你要四舍五入得到整数的话:
就加0.5再取整就是了
float a;
int b;
b=a+0.5;

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧