繁体   English   中英

C# 动态十进制格式

[英]C# Dynamic Decimal Formatting

我有以下数据库值

 0.0012
 0.00197
 0.002  
 0.00011
 0.065000  
 0.002001
 0.9624
 1
 1.23
 1.232
 1.5
 1.0924

我知道我需要将数字乘以 1000 才能得到正确的答案,然后我会尝试为正确的数字格式设置格式。 我尝试了不同的字符串格式,例如下面的代码:

txtTop_Measure.Text = String.Format("{0:f2}", (System.Convert.ToDecimal(_dataRowMeasureData["Top_Measure"]) * 1000));

这给了我下面的输出。 有些是正确的,有些则不是。

 1.20
 1.97
 2.00  
 0.11
 0.07
 2.00
 962.40
 1000.00
 1230.00
 1232.00
 1.500.00
 1092.40

我需要的输出如下,但我不知道使用哪种字符串格式来获取下面的输出。

 1.20
 1.97
 2  
 0.11
 0.0650
 2.0010
 962.40
 1000
 1230
 1232
 1.500
 1092.40

我需要社区的脑力来解决这个问题。 谢谢

这是一个如何根据小数位格式化字符串的示例。 首先,我运行一个 modulo-n-check。 根据该结果,我选择格式。

        var s = "0.0012";
        var x = Convert.ToDecimal(s)*1000%1000 == 0
            ? String.Format("{0}", Convert.ToInt64(s) * 1000)
            : String.Format("{0:f2}", Convert.ToDecimal(s) * 1000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM