我想写一个代码,支持我使用小数舍入值。那么,我该如何编写这样的代码呢?
例1:
(1)var mainValue = 1.2356,decimals = 3 ===> 1.236(2)var mainValue = …
我希望你错过了 MidpointRounding.AwayFromZero 来电的参数 Math.Round() 。如果没有它,你会得到奇怪的舍入结果,因为它会舍入到最接近的偶数(所谓的“银行家的舍入”)。
MidpointRounding.AwayFromZero
Math.Round()
试试这个代码;它给出了您的预期结果:
using System; namespace Demo { class Program { static void Main() { round(1.2356, 3); round(1.2356, 2); round(1.2356, 1); round(1.3210, 3); round(1.3210, 2); round(1.3210, 1); round(1.0325, 3); round(1.0325, 2); round(1.0325, 1); round(2.3912, 3); round(2.3912, 2); round(2.3912, 1); round(5.4565, 3); round(5.4565, 2); round(5.4565, 1); } static void round(double value, int decimals) { double result = Math.Round(value, decimals, MidpointRounding.AwayFromZero); Console.WriteLine($"round({value}, {decimals}) = {result}"); } } }