把整数根据小数点位置转换成浮点数

ttiimm11 2011-06-07 03:45:46
程序里定义了一个int变量A,float变量C, 还有一个byte变量B
B表示A中数值小数点的位置
例如A=12345678 B=3
那我想得到C=12345.678,即A的值把小数点向左移动3位得到C

请教,我该任何实现?

我不想得到C=1234567.678*****,后面可以是“0”但不能是其他数,不要那种A/10.0f,或A*0.01f之类的效果,谢谢
...全文
269 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttiimm11 2011-06-07
  • 打赏
  • 举报
回复
顶啊,好赶紧结贴
ttiimm11 2011-06-07
  • 打赏
  • 举报
回复
现在我可以接受把
int->string插入小数点->float这种方式
但如何保证string->float 时,不会在最后填上乱七八糟的其他数值
ttiimm11 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sp1234 的回复:]

喜欢实用的,那么就使用“那种A/10.0f,或A*0.01f之类”的方法,然后使用string.Format进行格式化,保留3位小数。
[/Quote]
可我最终需要float型,就算我格式化后,在转成float,数值又变了
wklin8607 2011-06-07
  • 打赏
  • 举报
回复
拿分走人
  • 打赏
  • 举报
回复
喜欢实用的,那么就使用“那种A/10.0f,或A*0.01f之类”的方法,然后使用string.Format进行格式化,保留3位小数。
ttiimm11 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]

void Main()
{
string A="12345678" ;
int B=3;
Console.WriteLine(A.Insert(A.Length-B,"."));//12345.678


}
[/Quote]

我先把int转成string,插入小数点再转成float?
可怎么转float能保证是12345.678而不是12345.677,我用的是

int a = 12345678;
byte b = 3;
float c = float.Parse(a.ToString().Insert(a.ToString().Length - b, "."));

输出c=123456.677
lpingz 2011-06-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]
void Main()
{
string A="12345678" ;
int B=3;
Console.WriteLine(A.Insert(A.Length-B,"."));//12345.678


}
[/Quote]

++
  • 打赏
  • 举报
回复
喜欢花哨的话,可以使用正则 ((?<=\d)\d{3})+\b。
wanghaopeng 2011-06-07
  • 打赏
  • 举报
回复
如果不嫌麻烦就把float转化成string,然后根据B在A中插入小数点就可以了啊
q107770540 2011-06-07
  • 打赏
  • 举报
回复
void Main()
{
string A="12345678" ;
int B=3;
Console.WriteLine(A.Insert(A.Length-B,"."));//12345.678


}

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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