【发布时间】:2013-02-24 10:00:23
【问题描述】:
我的程序将点云保存到文件中,其中每个点云都是来自System.Windows.Media.Media3D 命名空间的Point3D[,]。这显示了输出文件的一行(葡萄牙语):
-112,644088741971;71,796623005014;NaN (Não é um número)
虽然我希望它是(为了之后正确解析):
-112,644088741971;71,796623005014;NaN
生成文件的代码块在这里:
var lines = new List<string>();
for (int rows = 0; rows < malha.GetLength(0); rows++) {
for (int cols = 0; cols < malha.GetLength(1); cols++) {
double x = coordenadas_x[cols];
double y = coordenadas_y[rows];
double z;
if ( SomeTest() ) {
z = alglib.rbfcalc2(model, x, y);
} else {
z = double.NaN;
}
var p = new Point3D(x, y, z);
lines.Add(p.ToString());
malha[rows, cols] = p;
}
}
File.WriteAllLines("../../../../dummydata/malha.txt", lines);
似乎从Point3D.ToString() 内部调用的double.NaN.ToString() 方法包括我根本不想要的括号中的“附加解释”。
有没有办法改变/覆盖这个方法,使它只输出NaN,不带括号部分?
【问题讨论】:
-
看看 NumberFormatInfo.NaNSymbol(msdn.microsoft.com/en-us/library/0c899ak8.aspx 的注释部分)
-
@daniloquio 你认为你可以提供一个快速的工作代码和你的建议吗?我很确定我在找什么!
-
用解决方案编辑了我当前的答案。请看一下