zoukankan      html  css  js  c++  java
  • decimal(C# 参考)

    decimal(C# 参考)

    decimal 关键字表示 128 位数据类型。 同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。 decimal 类型的大致范围和精度如下表所示。

     

    类型

    大致范围

    精度

    .NET Framework 类型

    decimal

    (-7.9 x 1028 - 7.9 x 1028) / (100 - 28)

    28 到 29 位有效位

    SystemDecimal

    文本

    如果希望实数被视为 decimal 类型,请使用后缀 m 或 M,例如:

    decimal myMoney = 300.5m;

    如果没有后缀 m,数字将被视为 double 类型,从而导致编译器错误。

    转换

    整型被隐式转换为 decimal,其计算结果为 decimal 因此,可以用整数初始化十进制变量而不使用后缀,如下所示:

    decimal myMoney = 300;

    在浮点型和 decimal 类型之间不存在隐式转换;因此,必须使用强制转换在这两种类型之间进行转换。 例如:

    decimal myMoney = 99.9m;
    double x = (double)myMoney;
    myMoney = (decimal)x;

    还可以在同一表达式中混合使用 decimal 和数值整型。 但是,不进行强制转换就混合使用 decimal 和浮点型将导致编译错误。

    有关隐式数值转换的更多信息,请参见隐式数值转换表(C# 参考)

    有关显式数值转换的更多信息,请参见显式数值转换表(C# 参考)

    格式化十进制输出

    可以通过使用 String.Format 方法或 ConsoleWrite 方法(它调用 String.Format())来格式化结果。 货币格式是使用标准货币格式字符串“C”或“c”指定的,如本文后面的第二个示例所示。 有关 String.Format 方法的更多信息,请参见 StringFormat

    示例

    在此例中,同一个表达式中混合使用了 decimalint 计算结果为 decimal 类型。

    下面的示例使用某个语句来尝试添加 doubledecimal 变量:

    double x = 9;
    Console.WriteLine(d + x); // Error

    其结果是导致以下错误:

    Operator '+' cannot be applied to operands of type 'double' and 'decimal'

    1. public class TestDecimal
    2. {
    3. static void Main()
    4. {
    5. decimal d = 9.1m;
    6. int y = 3;
    7. Console.WriteLine(d + y); // Result converted to decimal
    8. }
    9. }
    10. // Output: 12.1

    在此例中,使用了货币格式字符串来设置输出格式。 注意:其中 x 被舍入,因为其小数点位置超出了 $0.99。 而表示最大精确位数的变量 y 严格按照正确的格式显示。

    1. public class TestDecimalFormat
    2. {
    3. static void Main()
    4. {
    5. decimal x = 0.999m;
    6. decimal y = 9999999999999999999999999999m;
    7. Console.WriteLine("My amount = {0:C}", x);
    8. Console.WriteLine("Your amount = {0:C}", y);
    9. }
    10. }
    11. /* Output:
    12. My amount = $1.00
    13. Your amount = $9,999,999,999,999,999,999,999,999,999.00
    14. */
    C# 语言规范

    有关更多信息,请参见 C# 语言规范。C# 语言规范是 C# 语法和用法的权威资料。

  • 相关阅读:
    《Spring_Four》第二次作业 基于Jsoup的大学生考试信息展示系统开题报告
    《Spring_Four》第一次作业:团队亮相
    4.11jsp
    4.7jsp
    3.17jsp
    3.24jsp
    3.10jsp
    3.4软件测试
    回文串
    博客园第二次作业
  • 原文地址:https://www.cnblogs.com/nidakun/p/2643604.html
Copyright © 2011-2022 走看看