初学C#之进制转换(支持十进制小数转任意进制【2到36进制】)

本文介绍了一种将十进制数转换为任意进制数的算法,包括整数部分和小数部分的转换过程,适用于16进制等不同进制类型的转换。
代码
// <summary>
/// 将十进制数转换成任意进制,支持小数
/// </summary>
/// <param name="DB">将要转换的数</param>
/// <param name="Type">转到的进制类型,例如:16</param>
/// <returns>字符串的结果</returns>
public static string DToAny(double DB,int Type)
{
string H = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
long D;
double B;
string tempD="", tempB="";
D
=(long)DB;
B
= DB - D;
if (D == 0)
{
tempD
= "0";
}
while (D != 0)
{
tempD
= H[(((int)D % Type))] + tempD;
D
= D / Type;
}
for (int i = 0; i < 7; i++)
{
if (B == 0
{
break;
}
tempB
+= H[((int)(B * Type))];
B
= B * Type - (int)(B * Type);
}
if (tempB == "")
{
return tempD;
}
else
{
return tempD + "." + tempB;
}
}

 

转载于:https://www.cnblogs.com/Dersoul/archive/2010/10/30/1865235.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值