C# 如何计算百分比
我想计算一个百分比。我的代码是:C# 如何计算百分比,c#,string,double,percentage,C#,String,Double,Percentage,我想计算一个百分比。我的代码是: Bot.Log("[ KEYBOT ] The total is " + (suctrades * totaltrades ) / 100 + "% !"); 如果我这样做,我只得到0。我做错了什么?试试: Bot.Log("[ KEYBOT ] The total is " + ((double)suctrades * totaltrades ) / 100 + "% !"); 我假设suctrades和totaltrades不是十进制类型。这应该可以解决
Bot.Log("[ KEYBOT ] The total is " + (suctrades * totaltrades ) / 100 + "% !");
如果我这样做,我只得到0。我做错了什么?试试:
Bot.Log("[ KEYBOT ] The total is " + ((double)suctrades * totaltrades ) / 100 + "% !");
我假设suctrades和totaltrades不是十进制类型。这应该可以解决由于表达式求值时类型传播造成的问题。可能
suctrades*totaltrades
仍然是一个int
。最简单的方法可能是将代码更改为:
((double)suctrades) * totaltrades/100
或
强制使用
double
而不是int
int是一种整数类型;将两个整数除法执行整数除法,即小数部分被截断,因为它不能存储在结果类型(也是int!)中。相比之下,十进制有一个小数部分。通过调用Decimal.Divide,int参数将隐式转换为小数
通过将至少一个参数显式转换为浮点类型,可以对int参数强制执行非整数除法,例如:100.0m这是转换为十进制
decimal result = suctrades * totaltrades/100.0m
在乘法之前将值强制转换为
double
,它是否更像String.Format(“总数为{0:n2}%!”,((suctrades/(double)totaltrades)*100.0))
??我相信你的基数也是错误的,除非这样的交易*总交易不能超过100;)谢谢你!这对我很有帮助,所以你不需要感谢,只要标记我的答案或投票就可以了
decimal result = suctrades * totaltrades/100.0m