C# 1 小数点到 2 个小数点

本文关键字:小数点 | 更新日期: 2023-09-27 18:31:45

我正在制作一个Windows Phone 8.1应用程序,我正在尝试制作一个点钱功能。我想知道变量是否有 1 个小数或 2 个或更多。

double 1decimal = 0.2;
double 2decimalsOrMore = 0.33333;

我需要某种"if-statement"来检查变量是否有 1 位或多个小数。如果它有 1 个小数,我需要通过在双精度中添加"0"来拥有 2 位小数

if ("code here){
    // has 1 decimal
    string StringnewDecimalValue = oldDecimalValue + "0";
    double newDecimalValue = double.parse(newDecimalValue);
}
else{
    // has 2 decimals or more
    double newDecimalValue = Math.Round(oldDecimalValue , 2);
}

基本上,如果最终结果(钱)有 1 个小数(比如 1.2 美元),它需要是 1.20 美元

C# 1 小数点到 2 个小数点

我对你所说的"有两个小数"是什么意思感到困惑; 如果您使用的是实际的双精度或十进制数据类型,则尾随零毫无意义。换句话说:

decimal d1 = decimal.Parse("1.2");
decimal d2 = decimal.Parse("1.2000000");

在这两种情况下产生相同的值。(如果您正在处理货币值,您应该使用decimal,因为它们可以以double无法做到的方式精确地表示 10 进制数字。

但是,如果您只关心打印的字符串表示形式有两个小数,则无需执行任何特殊操作;只需使用适当的格式字符串:

var s = d1.ToString("c2");

如果需要,将始终打印训练 0。

看起来像一个格式问题......那么为什么不简单地使用string.format呢?

1行代码:(基于这篇文章使用字符串格式显示十进制最多2位或简单整数)

 var fixed = string.Format("{0:0.00}", oldDecimalValue);

请确保您的变量名称不以数字字符开头。 而不是使用:

 double 1decimal = 0.2;
 double 2decimalsOrMore = 0.33333;

请使用:

 double decimal1 = 0.2;
 double decimalsOrMore2 = 0.33333;