在小数点前输入第14位后转换为字符串时,双值变为舍入

时间:2017-11-06 09:43:40

标签: c# wpf textbox

我使用较大的double值,如下面的代码

double value = 99999999999999.99;
this.textBox1.Text = value.ToString("N");

但是TextBox值会四舍五入,我在TextBox

中得到以下值
  

100,000,000,000,000.00

任何人都可以告诉我如何在不圆满的情况下获得确切的值?

2 个答案:

答案 0 :(得分:2)

这是因为双精度是15-16位数(Mup - Meteor Up),而且你的数字包含太多数字。 我建议使用十进制类型代替这样的数字:

decimal value = 99999999999999.99M;

M后缀使得十进制类型的数字而不是double。

答案 1 :(得分:1)

你用完了双数据类型的精度。请尝试使用十进制:

decimal value = 99999999999999.99M;
this.textBox1.Text = value.ToString("N");

给出

99.999.999.999.999,99