我尝试在 C# 中转换(Decimal)0.9975
为string
with(0.##)
格式,但它将数字四舍五入为 1 而不是0.99
这是代码;
decimalValue.ToString("0.##");
如何将输出写为 0.99?
我尝试在 C# 中转换(Decimal)0.9975
为string
with(0.##)
格式,但它将数字四舍五入为 1 而不是0.99
这是代码;
decimalValue.ToString("0.##");
如何将输出写为 0.99?
我很久以前就得到了这个。我也对类似的事情感到震惊。我欠他这个职位。
decimal d = 0.9975m;
decimal newDecimal = Math.Truncate((d*100))/100;
string result = string.Format("{0:N2}", newDecimal.ToString()); // OR
string result = newDecimal.ToString(); //This is simpler I guess.
希望能帮助到你。
使用格式
decimalValue.ToString("#0.0#");
如果占位符上有值,则“#”将被更新,如果“#”占位符上没有值,则将被忽略,但不会忽略“0.0”。
或者
var value = string.Format("{0:0.00}", decimalValue);
或者
decimal decimalValue = 0.9975;
value.ToString("G3");
另一种选择是接受四舍五入但从小数中减去 0.005
decimal d = 0.9975m;
string result = (d-0.005m).ToString("0.##");
(0.9975 - 0.005) = 0.9925;
0.9925 => 0.99