有没有直接办法将整数显示成带小数的(隐含的小数点)

yhec 2011-05-20 08:44:03
如 23456 显示成234.56
72418 显示成724.18
这是隐含的小数点,要显示出来
用sprintf(s,"%3.2d",d);却不行。
有没有直接的办法,若没有就只好用串拼接的办法了。
...全文
260 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzl1128 2011-12-01
  • 打赏
  • 举报
回复
受教了
ccrun.com 2011-05-21
  • 打赏
  • 举报
回复
一个sprintf恐怕不好实现。

#include <stdio.h>

int d = 23456;
int a, b;
char sz[32] = { 0 };
sprintf(sz, "%d", d);
sscanf(sz, "%03d%02d", &a, &b);
sprintf(sz, "%03d.%02d", a, b);
ShowMessage(sz);
yhec 2011-05-21
  • 打赏
  • 举报
回复
格式是固定的,如固定两位小数 999.99
yhec 2011-05-21
  • 打赏
  • 举报
回复
有没有简单的,sprintf本身有没有办法格式中直接插入隐含的小数位数
lirg8405 2011-05-21
  • 打赏
  • 举报
回复
用C++写的
string IntToString(int iValue)
{
static int index=0;
if (iValue < 0)
return "-" + IntToString(-iValue);
if (iValue == 0)
return "";
string str;
str.append(1,'0'+iValue%10);
++index;
if (index == 2)
return IntToString(iValue/10) +"."+ str;
else
return IntToString(iValue/10) + str;
}
如果在BCB里面使用,自己改吧
这个没有处理当位置小于或等于2的时候
如果不行,我不清楚了
ccrun.com 2011-05-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lirg8405 的回复:]
sprintf(s,"%.2f",(float)d/100);
[/Quote]

楼主在4楼说了,不想用浮点。
lirg8405 2011-05-21
  • 打赏
  • 举报
回复
sprintf(s,"%.2f",(float)d/100);
ccrun.com 2011-05-21
  • 打赏
  • 举报
回复
楼主的需求中,数值是固定的3.2的格式么?
CppFile 2011-05-20
  • 打赏
  • 举报
回复
AnsiString str="123456";
ShowMessage(str.Insert(".",str.Length()-1));
yhec 2011-05-20
  • 打赏
  • 举报
回复
不想用浮点。
z_wenqian 2011-05-20
  • 打赏
  • 举报
回复
就是,直接除100不就成小数了,这是最简单的了吧。
BCBPLC 2011-05-20
  • 打赏
  • 举报
回复
sprintf(buf,"%d.%.2d",x/100,x%100);
这样才对
BCBPLC 2011-05-20
  • 打赏
  • 举报
回复
#include "stdio.h"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x=234578;
char buf[100];
sprintf(buf,"%d.%d",x/100,x%100);
Edit1->Text=buf;

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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