C# 小数类型除法的精度在 Mono 上不同?

2024-01-14

decimal d1 = 4.0m;
decimal d2 = 40.0m;
decimal d = d1 / d2;
string repr = d.ToString();

在 Windows 上,我得到的 repr 为“0.1”。在 Mono (Xamarin Android) 上,我得到“0.1000000000000000000000000000”左右。是什么赋予了?另外,我还看到建议除以 1.0000000000000000000000000000m 来去除不需要的尾随零。这在 Xamarin Android 上也不起作用。

已知错误?或者从技术上讲这不是一个错误——这是否符合标准?

为了去掉零,我将值转换为字符串,从字符串中删除尾随零,然后将其转换回小数。它非常弱。另外,我的解决方案无法产生我想要的确切结果。我宁愿保留适当重要的尾随零,而不是删除所有尾随零。


也许值得一提的是,这个错误已经被修复,正如 Miguel de Icaza 所说:https://bugzilla.novell.com/show_bug.cgi?id=655780#c2 https://bugzilla.novell.com/show_bug.cgi?id=655780#c2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 小数类型除法的精度在 Mono 上不同? 的相关文章

随机推荐