当显示当前小数的值时.ToString(),它精确到15个小数位,并且由于我用它来表示美元和美分,我只希望输出为2位小数.
我是否使用此变体.ToString()?
我正在尝试截断C#中的一系列双精度值。无论我使用哪种舍入方法,以下值都会失败。导致这两种方法均失败的该值有什么问题?为什么还要Math.Round无法正确截断数字?可以使用哪种方法正确截断这些值?
价值 :
double value = 0.61740451388888251;
Run Code Online (Sandbox Code Playgroud)
方法1:
return Math.Round(value, digits);
Run Code Online (Sandbox Code Playgroud)
方法2:
double multiplier = Math.Pow(10, decimals)
return Math.Round(value * multiplier) / multiplier;
Run Code Online (Sandbox Code Playgroud)
即使在VS监视窗口中也失败!
