寻找一种更轻松的方法来使用C#中的浮子
-
18-09-2019 - |
题
由于多种原因,我必须在代码中使用浮子而不是双打。要在我的代码中使用文字,我必须写一些类似的内容:
float f = 0.75F;
否则编译器将仅将“ 0.75”视为双重。我可以在代码中或在Visual Studio中放置任何东西,可以使其像“ 0.75”一样将其视为浮标,而无需每次附加“ F”?
解决方案
Float带有F :-)
其他提示
不 - 幸运的是,IMO。文字在任何地方都以相同的方式对待。
这是一件好事 - 想象一些维护开发人员来了,并在一年后查看您的代码。他看到“ 0.75”,并认为“我知道C# - 这是双重!坚持下去,如何将其分配到浮点变量?” iCk。
到处添加“ F”真的很痛苦吗?你真的有吗 那 许多常数?你能提取它们吗 作为 恒定值,因此您所有的“ F-suffix”文字都位于同一位置。
仅供参考 - 您可以找到C#的所有编译器选项 http://msdn.microsoft.com/en-us/library/6ds95cz0.aspx. 。如果您在那里检查,您会发现没有任何允许的选项 - 正确的原因是@Jon Skeet指出的原因。
该语言将浮点精度文字解释为到处都是两倍。这不是编译器的可配置功能,并且有充分的理由。
配置语言如何解释您的代码将导致兼容性和维护开发人员了解代码含义的能力。
虽然通常不建议您,但您可以通过使用:
var f = 0.75F;
请小心,因为使用此语法忘记“ F”后缀会导致编译器创建双重而不是浮子。
我建议您始终使用
var meaning = 1f;
因为“ var”关键字节省了许多人类的解释和维护时间。
适当的行为不会使编译器将非填充的文字解释为单精度浮标,而是要认识到从double到float的转换应被视为扩大转换,因为每个转换 double
价值,要么有一个明确的校正 float
表示形式,或(在少数罕见的边缘情况下)将完全有两个同样良好的值,而不得不成为明确的校正值,这两个值都不会超过每四十四的零件。从语义上讲,转换 float
至 double
应该被视为缩小转换(因为它们要求编译器“猜测”它没有的信息),但是会导致的实际困难可能证明朝着该方向进行转换为合理。
也许应该向Microsoft请愿,以添加来自 double
至 float
?没有充分的理由为什么将图形坐标计算为 double
调用绘图函数时,应弄乱打字。