c# - 版本号 float 、十进制或 double

标签 c# .net version-control document-management

我有一个文件管理系统,文件可以有多个版本。每个版本都有保存,用户可以查看版本历史。

我想知道的是:版本号应该使用什么数据类型?小数、 float 还是 double ?我正在使用 .NET 和 C#。

版本号从 0.1 开始,每个发布的主要 版本都将四舍五入到下一个整数。即 0.4 变为 1.01.3 变为 2.0

当版本号达到 0.9 并添加了一个次要版本时,我希望版本号变为 0.10 而不是 1.0 ,当我添加到它时。这是最大的问题。

如有任何建议,我们将不胜感激。

谢谢。

最佳答案

系统版本

这已经存储了不同的部分,将其作为字符串处理(修订和构建组件仅在非零时用于显示,因此它们与您的情况无关紧要)和(最重要的是) 已经被其他 .NET 开发人员理解,并且不会导致混淆(如果我看到一些使用的版本号不是 System.Version 我会花一些时间然后尝试弄清楚为什么 Version 对这项工作来说不够好,以防它被证明很重要并且隐藏了一个令人讨厌的惊喜。如果它对这项工作来说足够好,我会对开发人员浪费感到恼火我的时间就是这样)。

您可以使用扩展方法轻松处理您想要的递增方式:

public static Version IncrementMajor(this Version ver)
{
  return new Version(ver.Major + 1, 0);
}
public static Version IncrementMinor(this Version ver)
{
  return new Version(ver.Major, ver.Minor + 1);
}

关于c# - 版本号 float 、十进制或 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4165182/

相关文章:

c# - c#中的if返回语句

c# - 默认情况下,如何在数据库中设置 Entity Framework 导航属性查询过滤器?

c# - 无法将服务引用添加到自承载 WCF 服务

c# - 是否可以在 .Net 3.5 中制作通用控件?

具有构建功能和源代码控制的 Asp.net 托管提供商

git - 在 Ubuntu box 上创建本地 Git 仓库

node.js - 在 npm 和 git 中同步版本管理

c# - 如何从 .NET 中的异常堆栈跟踪中隐藏当前方法?

c# - MsBuild 任务和属性范围

c# - PInvoke 整数编码返回不正确的结果