1
CSV 파일을 쓰려고하는데, 6.49483e-005 값을 가지고 있습니다. 이것은 CSV로 정확하게 쓰여졌지만 Excel에서는 올바르게 표시되지 않습니다. . 6,48E + 00으로 읽습니다.엑셀과 C++를 사용하여 지수를 CSV로 변환
저는 C++에서 그렇게하고 있습니다. 원하는 경우 코드를 요청할 수 있습니다. CSV에 쓰여진 값에 긴 double을 사용하고 문자열로 변환 한 다음 작성합니다.
s = "00043E61"
digitstring = "00000000000001000011111001100001"
sum = 6.4753228798508644e-005
n = 278113
CVS에서 Excel에서 6.49483e-005
입니다 : @ThomasMatthews 지적
stringstream ss;
ss << hex << s;
unsigned n;
ss >> n;
bitset<32> b(n);
string digitstring = b.to_string();
if(digitstring[0] == '1')
{
negative = true;
}
long double sum = 0;
int exp = 1;
int v = 0;
if(negative)
{
v = 1;
}
else
{
v = 0;
}
for(; v < digitstring.size(); v++)
{
int b = digitstring[v] - '0';
long double result = (long double)b/power(2,exp);
sum+=result;
exp = exp +1;
}
if(negative)
{
sum*=-1;
}
ostringstream os;
os << sum;
resultsSoil.push_back(os.str());
}
예, 항상 코드를 작성하십시오! :) --- 그러나 그것이 CSV에 올바르게 쓰여진 것이라면 아마 셀의 표시 형식 일 것입니다. Excel에서는 Ctl + 1을 누르고 6 자리 정밀도로 형식을 과학으로 변경하십시오. 그것이 그 일을하는지보십시오. – cxw
여전히 6,494830E + 00으로 읽혀집니다. CSV에서는 6.49483e-005로 표시됩니다. –
OK - 오해의 소지가 있습니다. 추가로 입력 된 '서명되지 않은 n'값, 해당'sum' 및'os.str()'값, CSV 파일의 바이트 및 CSV를 열 때 Excel이 보여주는 내용의 스크린 샷을 편집하십시오. (추신 : 자신의'double's은 꽤 하드 코어입니다.) 감사합니다! – cxw