C#如何在没有四舍五入双格式到小数点后一位 [英] C# How to format a double to one decimal place without rounding

查看:128
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆