Il mio programma salva un pointcloud in un file, dove ogni pointcloud è uno Point3D[,]
, dallo spazio dei nomi System.Windows.Media.Media3D
. Questo dimostra una riga del file di output (in portoghese):Come modificare la rappresentazione della stringa NaN in C#?
-112,644088741971;71,796623005014;NaN (Não é um número)
mentre mi piacerebbe che fosse (in modo da essere correttamente analizzato in seguito):
-112,644088741971;71,796623005014;NaN
Il blocco di codice che genera il file è qui:
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);
sembra che il metodo double.NaN.ToString()
, chiamato dall'interno Point3D.ToString()
, include quella racchiusa tra parentesi "spiegazione aggiuntiva", che io non voglio affatto.
C'è un modo per modificare/sovrascrivere questo metodo in modo che emetta solo NaN
, senza la parentesi parte?
Dai un'occhiata a NumberFormatInfo.NaNSymbol (la sezione delle note su http://msdn.microsoft.com/en-us/library/0c899ak8.aspx) – daniloquio
@daniloquio Pensi di poter fornire un codice di lavoro rapido con il tuo suggerimento? Sono abbastanza sicuro di quello che stavo cercando! – heltonbiker
ha modificato la mia risposta attuale con una soluzione. Si prega di dare un'occhiata – daniloquio