C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – 如何舍入数字大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_772_1@
我有excel提供的逻辑

CONCATENATE(round(slno/256,0),ROUNDUP(((slno /256)-round(slno/256,0))*256,0))

并且我正在转换为c#相同.按照逻辑如果slno是2696709然后回答应该是105345.但是当我使用以下c#代码我得到它作为10534-2686169,如何纠正并得到它作为105345
我使用的错误代码如下

decimal slno = 2696709;
String result = Math.round((slno / 256),0).ToString() + 
                Math.Ceiling(((slno / 256) - 
                Math.round((slno / 256),0) * 256)).ToString();

解决方法

这是由于操作顺序而发生的.你的乘法乘以256是在你的减法之前.

在这部分代码中:

@H_76_7@math.Ceiling(((slno / 256) - Math.round((slno / 256),0) * 256))

您希望首先进行减法,您可以使用括号.

@H_76_7@math.Ceiling((((slno / 256) - Math.round((slno / 256),0)) * 256))

我还将虑在您的舍入调用上设置一个明确的MidpointRounding值,因为认值(到最近的偶数)通常不是您期望的远离零.
例如,= round(2.5,0)导致值为3的单元格,Math.round(2.5,0)导致2.

excel公式的完整翻译可能如下所示:

decimal slno = 2696709; 
var val = slno / 256;
var valRound = Math.round(val,MidPointRounding.AwayFromZero);
var result = valRound.ToString() + Math.Ceiling((val - valRound) * 256).ToString();

大佬总结

以上是大佬教程为你收集整理的c# – 如何舍入数字全部内容,希望文章能够帮你解决c# – 如何舍入数字所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。