请教:当不知道两个变量的类型的时候(可能是string, int, double)时,怎么比其大小

dlfour 2003-09-29 09:11:31
谢谢
...全文
81 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Loveedom 2003-09-30
  • 打赏
  • 举报
回复
具体代码贴出来看看
再想想办法
zhang865 2003-09-30
  • 打赏
  • 举报
回复
对,模板或者重载
Bandry 2003-09-30
  • 打赏
  • 举报
回复
还是用模板吧
FAICHEN 2003-09-30
  • 打赏
  • 举报
回复
模版机制
AkiraChing 2003-09-30
  • 打赏
  • 举报
回复
用函数重载的机制就可以了,
比如
bool Compare(CString str1,CString str2);
bool Compare(int n1,int n2);
bool Compare(double d1,double d2);
或者用 MikeChen2003(兔兔)的方法,改进一下其中的函数
double unknownToDouble(CString str)
{
return _tstof(str);
}
double unknownToDouble(int comp )
{
return (double)comp;
}
double unknownToDouble(double comp )
{
return comp;
}

你把两个变量var1,var2用unknownToDouble()转换一下就可以了,
C++编译器会自动选择合适的函数的
pp_ipr 2003-09-30
  • 打赏
  • 举报
回复
你需要确定一种比较规则,否则无法比较不确定类型的大小
wuxfBrave 2003-09-30
  • 打赏
  • 举报
回复
考虑用模板,一般的数据类型可能都实现了>,没有实现>的就是用自己写的类,重载操作符>
MikeChen2003 2003-09-30
  • 打赏
  • 举报
回复

用重载就可以了

double unknownToDouble(int comp )
{
return (double)comp;
}
double unknownToDouble( char comp )
{
if( '0' <= comp && comp <= '9' )
comp -= '0';
return (double)comp;
}
//str
double unknownToDouble( char comp[] )
{
char ch;
if( 0 == strlen( comp ) )
return 0;
if( strlen( comp ) > 1 )
{
return (double)StrToInt( comp ); //StrToInt我在msdn2001看到的
}
else
{
ch = comp[0];
return unknownToDouble( ch );
}
}


比较例子:
if( unknownToDouble(1) < unknownToDouble('1') || unknownToDouble(1321412.0f) < unknownToDouble( "13424" ) )


bluebohe 2003-09-30
  • 打赏
  • 举报
回复
归根结底就是把他们统一转化成一种类型,然后比较大小
xiaohedou 2003-09-29
  • 打赏
  • 举报
回复
在数字和字符串之间的大小定义不一样!你应该建立这两个标准之间的联系,比如第三标准作仲裁,
即第三张表。
dlfour 2003-09-29
  • 打赏
  • 举报
回复
现在的问题是11比9大,但是“11”比“9”小
hotness28 2003-09-29
  • 打赏
  • 举报
回复
简单一点考虑,字符和数字在本质上是相同的;那样可以把字符串转化成字符,然后再比较。不过结果不一定会如你所愿 :)
dlfour 2003-09-29
  • 打赏
  • 举报
回复
不可以吧,当你不知道类型的时候,有可能两个int是写成string的,比如‘11’和‘9’,怎么比较。
dlfour 2003-09-29
  • 打赏
  • 举报
回复
求救
smch 2003-09-29
  • 打赏
  • 举报
回复
直接比较会按照字符的方法比较。
你可以直接使用atoi等函数转换,如果转换成功就按照转换之后的值比较。

16,471

社区成员

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

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

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