C#如何在没有四舍五入双格式到小数点后一位 [英] C# How to format a double to one decimal place without rounding
本文介绍了C#如何在没有四舍五入双格式到小数点后一位的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要没有它四舍五入格式化一个double值到小数点后一位。
双值= 3.984568438706
字符串结果=;
我曾尝试为:
1)
结果= value.ToString(## ##,System.Globalization.CultureInfo.InvariantCulture)+ %;
//返回3.98%
2)
结果= value.ToString(###,System.Globalization.CultureInfo.InvariantCulture)+%;
//返回4%
3)
结果= value.ToString(## 0,System.Globalization.CultureInfo.InvariantCulture)+%;
//返回4.0%
4)(以下其他建议)
值=(值/ 100);
结果=的String.Format({0:P1},Math.Truncate(值* 10000)/ 10000);
//返回4.0%
结果=的String.Format({0:0.0%},值); //返回4.0%
我要显示什么是值3.9%
感谢您事先的任何帮助。
解决方案
结果=的String.Format({0:0.0},Math.Truncate(值* 10)/ 10);
I need to format a double value to one decimal place without it rounding.
double value = 3.984568438706
string result = "";
What I have tried is:
1)
result = value.ToString("##.##", System.Globalization.CultureInfo.InvariantCulture) + "%";
// returns 3.98%
2)
result = value.ToString("##.#", System.Globalization.CultureInfo.InvariantCulture) + "%";
// returns 4%
3)
result = value.ToString("##.0", System.Globalization.CultureInfo.InvariantCulture) + "%";
// returns 4.0%
4) (Following other suggestions)
value = (value / 100);
result = String.Format("{0:P1}", Math.Truncate(value * 10000) / 10000);
// returns 4.0%
result = string.Format("{0:0.0%}",value); // returns 4.0%
What I need to display is the value 3.9%
Thanks for any help in advance.
解决方案
result=string.Format("{0:0.0}",Math.Truncate(value*10)/10);
这篇关于C#如何在没有四舍五入双格式到小数点后一位的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文