C# 需要帮助将带小数的数字转换为其他基数C吗#

C# 需要帮助将带小数的数字转换为其他基数C吗#,c#,math,decimal,octal,base-conversion,C#,Math,Decimal,Octal,Base Conversion,我需要一个C语言程序的帮助,该程序必须将任意数字(无论是整数还是长十进制)转换为任意基数(在合理范围内) 该程序有几个文本框(这是一个win表单),所有文本框都以空白开头。当用户将数字(可能带有小数点)添加到其中一个框中时,所有更新都将进行。默认框为基数2、8、10、16,最后一个框有一个子框,用于输入您选择的基数(例如,如果用户希望将数字基数16转换为基数7) 我不知道有任何作品以外的转换,有能力的基础转换 如果你不知道如何做到这一点,至少解释一下如何手动做到这一点会很棒!八进制中的64.96

我需要一个C语言程序的帮助,该程序必须将任意数字(无论是整数还是长十进制)转换为任意基数(在合理范围内)

该程序有几个文本框(这是一个win表单),所有文本框都以空白开头。当用户将数字(可能带有小数点)添加到其中一个框中时,所有更新都将进行。默认框为基数2、8、10、16,最后一个框有一个子框,用于输入您选择的基数(例如,如果用户希望将数字基数16转换为基数7)

我不知道有任何作品以外的转换,有能力的基础转换

如果你不知道如何做到这一点,至少解释一下如何手动做到这一点会很棒!八进制中的64.96(以10为基数)是什么

这是一个个人项目。我设定了挑战,然后开始完成一个项目

提前感谢您的帮助

编辑: 在C#中,我将如何执行此操作? int BaseX是我需要到达的基础。 int preBaseX是我的基础。 decimal outputNumber是我正在搜索的数字。
decimal inputNumber是我们的起点。(可以是650.3112或其他任何值)

要将64.96转换为八进制,首先确定要显示的“八进制点”后的位数。假设您需要3。然后将数字乘以8^3或512

64.96*512=33259.52

丢弃小数部分。顺便说一下,这是您的表示距离64.96的距离。您的答案将是0.52/512=0.001015625太小

现在,进行转换。重复将您的号码(33259)除以8,并跟踪剩余数:

33259 / 8 = 4157 remainder 3
4157  / 8 = 519  remainder 5
519   / 8 = 64   remainder 7
64    / 8 = 8    remainder 0
8     / 8 = 1    remainder 0
1     / 8 = 0    remainder 1
现在,以相反的顺序取出余数,并从末尾插入“八进制点”3:


100.753

你有没有尝试过谷歌搜索一个现有的类来进行这种转换?我通过快速搜索找到了这个:还有这个:这真的很有用!快速提问,“八进制点”是从数字的前面三个还是后面三个?(你显示了100.753,你是从前面还是后面数?)3从后面。我说“结束”我现在意识到这是不明确的,但我的意思是“结束”,就像在start/end中一样。当然,这也适用于其他基数。对于基数16,余数10到15将分别由十六进制数字“A”到“F”表示。