C#中四舍五入到两位小数如何将两位小数相乘并四舍五入到两位小数?例如,如果方程式为41.75x0.1,则结果为4.175。如果我在c#中使用小数执行此操作,它会自动舍入到4.18。我想四舍五入到4.17。我尝试使用Math.Floor,但它四舍五入为4.00。这是一个例子:Math.Floor(41.75*0.1);Math.Round(...)函数有一个枚举来告诉它使用什么舍入策略。不幸的是,这两个定义并不完全符合您的情况。两种中点舍入模式是:AwayFromZero–当一个数字介于另外两个数字之间时,它向最接近零的数字舍入。(Akka,向上)ToEven-当一个数字介于另外两个数字之间时,它会向最接近的偶数舍入。(比.17更喜欢.16,比.17更喜欢.18)您想要使用的是带有一些乘法的Floor。varoutput=Math.Floor((41.75*0.1)*100)/100;输出变量现在应该有4.17。您实际上也可以编写一个函数来获取可变长度:publicdecimalRoundDown(decimali,doubledecimalPlaces){varpower=Convert.ToDecimal(Math.Pow(10,decimalPlaces));返回Math.Floor(i*power)/power;}publicdoubleRoundDown(doublenumber,intdecimalPlaces){returnMath.Floor(number*Math.Pow(10,decimalPlaces))/Math.Pow(10,decimalPlaces);}在c#Native支持/capillaries中没有精度下限。但是,您可以通过将数字乘以底数,然后除以相同的乘数来模拟该函数。例如十进制y=4.314M;十进制x=Math.Floor(y*100)/100;//保留两位小数(使用1000表示3等)Console.WriteLine(x);//4.31不是一个理想的解决方案,但如果数字很小,应该可以。另一种解决方案是从零舍入到零并舍入到零。应该是这样的:以上就是C#学习教程:C#四舍五入到小数点后2位分享的所有内容,如果对大家有用,需要详细了解C#学习教程,希望大家多多付出注意——staticdecimalDecimalTowardZero(decimalvalue,intdecimals){//从零舍入varrounded=decimal.Round(value,decimals,MidpointRounding.AwayFromZero);//如果绝对舍入结果大于//我们需要更正结果的绝对源数if(Math.Abs??(rounded)>Math.Abs??(value)){returnrounded-newdecimal(1,0,0,价值本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处:
