【问题标题】:I need to get the data from double values without having decimal places我需要从没有小数位的双精度值中获取数据
【发布时间】:2013-01-20 08:01:14
【问题描述】:

我有一个double 变量,如下所示

double var1 = 0;

并且 我有一个Value = 123.25

例如var1 += Math.Round(123.25),我得到 123.0

所以我需要得到如下所示的数据?

输出应该是 = 123

【问题讨论】:

  • 什么是var1?当它产生以 .0 结尾的值时,你是如何使用它的?

标签: c# c#-4.0 double type-conversion


【解决方案1】:

您对类型感到困惑。你不想在这种情况下使用double 的声音。请改用int

int var1 = 0;
int var2 = (int)123.25;
int output = var1 + var2;

output 在这种情况下是 123。转换为 int 就不需要 Math.Round

【讨论】:

  • 这里的output 不应该是 123 吗?
【解决方案2】:

我强烈建议您阅读以下内容:http://www.whathaveyoutried.com

如果您遵循该文章中的建议,您将能够立即获得解决问题的帮助。

【讨论】:

    【解决方案3】:

    根据您的问题。如果您只想要整数值,为什么不将 Math.Round() 结果分配给 int 类型?这会让你得到你想要的。

    int x = (int)Math.Round(123.25);
    

    我不明白你最后不喜欢 .0 的原因吗?如果您打印包含 123.0 的变量,它会显示为 123。使用调试器时我只能看到 123.0。 你是如何使用价值的?如果您能告诉我们,那么如果提供的所有解决方案都对您没有用处,我们会找到更好的解决方案。

    【讨论】:

      【解决方案4】:
      int someOtherInt = Convert.ToInt32(var1);
      

      【讨论】:

        【解决方案5】:

        如何使用:

        (int)var1
        

        你需要在哪里展示它的价值?

        【讨论】:

        • @Subbu:“它不工作”是从来没有一个好的回应。您应该始终提供更多信息。
        【解决方案6】:

        问题不在于数据,而在于字符串转换。 double 在 123.0 和 123 之间没有区别...它们完全是相同的值,具有相同的位。

        因此,与其关注double 值本身,不如看看你是如何使用它的——你还没有告诉我们。例如,您可能只想更改正在使用的格式模式。

        【讨论】:

        • 能否请您提供代码,因为我是新生
        • @Subbu:不,我们不能给你代码——你还没有向我们展示你是如何使用这个值的(即你在哪里看到 123.0)......此外,目标是让您学习 - 因此您应该查看您的代码并使用答案中提供的信息来查看您是否可以自己修复它。
        猜你喜欢
        • 1970-01-01
        • 2023-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多