如何在十进制值中得到不多于和小于两位小数?

时间:2016-10-20 20:54:47

标签: c# excel decimal excel-interop decimal-precision

使用此代码:

totalPriceCell.Value2 = TotalPrice;

...我得到了像“3.14963245”这样的价值,而我想要的是“3.15”。

所以我使用了这段代码:

totalPriceCell.Value2 = TotalPrice.ToString("#.##");

...这确实解决了那个问题,但我仍然得到诸如“7.6”和“35”之类的值(我想成为“7.60”和“35.00”)

除了手动为“7.6”之类的val附加“0”并为“35”之类的值手动附加“.00”外,我该怎么做才能完成此操作?

更新

Niether的建议既有效,也没有:

totalPriceCell.Value2 = TotalPrice.ToString("F2");

......也不是这样:

totalPriceCell.Value2 = Math.Round(TotalPrice, 2).ToString("F2");

我仍然得到“7.6”等:

更新2

事实证明这是一个Excel问题,因为我添加了这个:

MessageBox.Show(Math.Round(TotalPrice, 2).ToString("F2"));

......我确实看到了诸如“7.60”(不是“7.6”)之类的值。

enter image description here

3 个答案:

答案 0 :(得分:2)

看起来您正在尝试将数字四舍五入到小数点后两位,然后然后输出尾随0的答案。

只需使用Math.Round()功能进行舍入,然后使用.ToString("F2")格式显示:

totalPriceCell.Value2 = Math.Round(TotalPrice, 2).ToString("F2");

Math.Round(arg1, arg2):第一个参数(arg1)是您要舍入的值,第二个参数(arg2)是您希望的小数位数转到。

.ToString("F2"):使用"F2" - F 作为"定点"格式指定; 2 是小数点后的位数。

希望这会有所帮助:)

答案 1 :(得分:0)

您可以使用#.00格式。

答案 2 :(得分:0)

因为它是Excel,我不得不告诉范围/单元格如何表现,如下:

totalPriceCell.NumberFormat = "#,##0.00";