使用double.parse时,似乎想从我要转换的字符串中串起任何尾随(无关紧要的)零。我希望Double.Parse在小数点后留在位置。例如,这里有一些代码:

tobereturned.MouseSensitivty = double.Parse(String.Format("{0:#.##}", tempstring[1]));
Debug.WriteLine("Converted " + String.Format("{0:#.##}", tempstring[1]) + " to " + tobereturned.MouseSensitivty);

调试器然后写道

将4.00转换为4

所以看起来像double.parse 在这里做些可怕的事情。 ps mousensitivity也是双重型的,因此我不能在上面进行任何字符串操作。

有帮助吗?

解决方案

您的问题毫无意义。双打没有 首先是“十进制之后的地方”。他们不会存储任何看起来像“内部数字的小数表示”的东西。实际上,他们在内部没有任何看起来像可识别的文本的东西。

它报告4,因为4.00完全等于4。它根据其默认规则将数字转换为文本的默认规则,将数字显示为“完全没有分数部分”的数字。

请阅读 这个. 。是的,它很长,很困难,但是根本不可能使用浮点数数字类型 适当地 没有 真正的理解 在这种材料中 - 而且您使用的是什么语言也无关紧要。

其他提示

double 数据类型只是一个数字;它不会跟踪被解析以创建值的字符串。它的字符串表示只有在 .ToString() 叫做。

如果您知道小数点之后总是想要两个地方,则可以与零一起填充。

跟踪所需的显示格式不是双重类型的工作。

Double不会存储冗余的零。在您的视图或演示层中,您可能需要格式化它以显示您希望它出现,例如,string.format(“ {0:#。##}”,doublevariable)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top