我正在尝试转换小数。如果没有成功,编译器将返回'invalid decimal constant'错误,并伴有编译失败。
-------------更新:
不能编译的行是:
if (value <(双)小数。MinValue || value> (double)decimal.MaxValue)
------------- END OF UPDATE
查找MinValue常量的定义后(更新:使用visual studio上的"Go to definition"选项),似乎该常量没有正确的值,该常量声明如下:
[DecimalConstant(0,255, 4294967295, 4294967295, 4294967295)]
所以我一直好奇地看到这个相同的约束声明在。net框架(更新:使用'Go to definition'选项在visual studio),我发现完全不同:
[DecimalConstant(0,128, 4294967295, 4294967295, 4294967295)]
public const decimal MinValue = - 7922816251426437593543950335m;
所以我的问题的解决方案可能是替换(双)十进制。MinValue由。net框架中常量的值转换,但我需要确保这个修复不会对我的应用程序产生影响?我的意思是,移动cpu寄存器将无法保存这个大小的值!
-------------------更新:
我的开发环境是:Windows 8.1, Visual Studio 2013 Update 1和monodroid v4.10.01073。
------------------- END OF UPDATE
阅读您所有的编辑和更新,使用常数decimal.MinValue
和使用实际值本身之间绝对没有区别。实际上,编译器会在编译项目时将所有常量替换为它们的实际值,因此编译后的结果代码是相同的。