C# 如何在不四舍五入的情况下将 double 格式化为小数点后一位

标签 c# string-formatting rounding

我需要将 double 值格式化为小数点后一位而不四舍五入。

double value = 3.984568438706
string result = "";

我试过的是:

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)(根据其他建议)

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%

我需要显示的是值3.9%

提前感谢您的帮助。

最佳答案

result=string.Format("{0:0.0}",Math.Truncate(value*10)/10);

关于C# 如何在不四舍五入的情况下将 double 格式化为小数点后一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11744264/

相关文章:

c# - WPF 在异步等待模式中使用 MVVM 和 WCF

java - 从数组打印时出现异常

java - 将秒转换为人类可读格式 MM :SS Java

python - 如果 Jinja2 没有小数值,如何四舍五入为零小数?

c# - 将 XML 发布到 URL

c# - NHibernate 删除我的行

c# - 用于控制 OWI-535 机械臂的 API

python - 字符串格式化参数的数量

c++ - C++舍入算法中的0.501,C++中的Excel ROUND

sql - 为什么 SQL Server 对两个整数相除的结果进行四舍五入?