我在Visual Studio 2015中创建了一个winform程序来计算Pi,但我在尝试获取逻辑数字的数量时遇到了问题。获取十进制变量的位数
我需要让这个:
public decimal pi = 3.15195647857832565; //random decimals
txtDigits.Text = //number of digits in pi variable and get rid of trailing decimal points
我在Visual Studio 2015中创建了一个winform程序来计算Pi,但我在尝试获取逻辑数字的数量时遇到了问题。获取十进制变量的位数
我需要让这个:
public decimal pi = 3.15195647857832565; //random decimals
txtDigits.Text = //number of digits in pi variable and get rid of trailing decimal points
如果你需要得到逻辑的位数,IE剔除尾随零,我建议你在这里使用的接受的方法:
Find number of decimal places in decimal value regardless of culture
decimal argument = 123.456m;
int digitCount = BitConverter.GetBytes(decimal.GetBits(argument)[3])[2];
我用这种方法适用于多个项目,并且它的工作非常好。请注意,这是为了找到尾随小数点的数量(我认为这就是你所追求的,但从你的问题来看并不清楚)。
接缝工作正常,谢谢 – Pepe
@ user87073'十进制参数= 1m/3;'返回28.为什么不是29?或为什么不是无限的?改善你的问题....并回答我发表的评论〜48分钟前... –
@ L.B好奇知道为什么这是downvoted?似乎很奇怪,因为OP没有明确说明他究竟是什么,所以试图用高质量的参考来回答这个问题。我在这里表示,我*假设*他正在寻找小数点后的数字。我在这里提供的方法确实如此。或者,也许你正在度过一个糟糕的一天? –
这将返回所有数字的计数:
int i= 0;
foreach (char c in pi.ToString())
{
if (Char.IsDigit(c))
{
i++;
}
}
多少个数字,你从期望,为前1/3? –