double转CString的有关问题

double转CString的问题
double   distance;
distance=10.1235456;
calclen.Format( "%f\r\n ",&distance);
file.Open           ( "list.txt ",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);
file.SeekToEnd();
file.WriteString(calclen);
file.close

为啥结果总是0.000000呢   怎么用CString输出double呢?

------解决方案--------------------
calclen.Format( "%f\r\n ",distance);就好了,为什么用&distane呢,因为那是取地址了。假如地址是0x3444这样,那不是0了
------解决方案--------------------
_ecvt
Converts a double number to a string.

#include <stdlib.h>
#include <stdio.h>

void main( void )
{
int decimal, sign;
char *buffer;
int precision = 10;
double source = 3.1415926535;

buffer = _ecvt( source, precision, &decimal, &sign );
printf( "source: %2.10f buffer: '%s ' decimal: %d sign: %d\n ",
source, buffer, decimal, sign );
}

CString strNewString(buffer);