【问题标题】:Float Variable format浮点变量格式
【发布时间】:2009-12-04 11:11:11
【问题描述】:

我需要格式化浮点值,我只需要点后的2个数字,应该是四舍五入的值

 float first = 7, Second = 3,result;
 result = first / Second; // result contain 2.33333325 since I need like 2.33

谢谢

【问题讨论】:

    标签: c# asp.net floating-point


    【解决方案1】:
    ?5/3
    1.6666666666666667
    ?String.Format("{0:0.00}", 5/3)
    "1,67"
    ?System.Math.Round(5/3, 2)
    1.67
    
    ?(5.0 / 3).ToString("0.00")
    "1,67"
    ?(5 / 3).ToString("0.00")
    "1,00"
    ?(5.0 / 3).ToString("E") //Exponential
    "1,666667E+000"
    ?(5.0 / 3).ToString("F") //Fixed-point
    "1,67"
    ?(5.0 / 3).ToString("N") //Number
    "1,67"
    ?(5.0 / 3).ToString("C") //Currency
    "1,67 €"
    ?(5.0 / 3).ToString("G") //General
    "1,66666666666667"
    ?(5.0 / 3).ToString("R") //Round-trip
    "1,6666666666666667"
    ?(5.0 / 3).ToString("this is it .")
    "this is it 2"
    ?(5.0 / 3).ToString("this is it .0")
    "this is it 1,7"
    ?(5.0 / 3).ToString("this is it .0##")
    "this is it 1,667"
    ?(5.0 / 3).ToString("this is it #####")
    "this is it 2"
    ?(5.0 / 3).ToString("this is it .###")
    "this is it 1,667"
    

    【讨论】:

      【解决方案2】:

      您可以使用Math.Round 对数字进行四舍五入,或者使用格式说明符指定它在输出中的显示方式。如果您想对值进行进一步计算,您需要决定是否需要舍入值或更准确的值。

      对于格式说明符,您可以在这种情况下使用 {0:f}。有关示例,请参阅此帖子http://blog.stevex.net/string-formatting-in-csharp/

      Console.WriteLine(String.Format("{0:f}", result));
      

      正如 Ben 指出的,ToString 接受相同的格式说明符,所以如果数字不是文本的一部分,你可以这样做。

      result.ToString("f");
      

      【讨论】:

      • 难道你不能也只使用result.ToString("f"); 来使用标准数字格式字符串吗? msdn.microsoft.com/en-us/library/dwhawy9k.aspx
      • 好点。我通常使用 String.Format 来包含其他文本/数字。我已将您的评论添加到我的答案中。谢谢。
      【解决方案3】:

      正如 Brian 所说,浮点数只是存储为二进制数据 - 它们不包含格式。当您将数字格式化为字符串时,您可能只想担心这一点。

      但是,如果您对涉及小数点的特定运算感兴趣,您可能希望先使用decimal 而不是float。您在这里实际使用什么样的数字?

      特别是,如果您正在执行多项操作并希望对数字本身进行舍入,那么decimal 可能是一个更好的选择。有关详细信息,请参阅我在 binary floating pointdecimal floating point 上的文章。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多