konwertowanie łańcucha na podwójną zmienną w C
Napisałem następujący kod .... Powinien przekonwertować ciąg taki jak „88” na podwójną wartość 88 i wydrukować go
<code>void convertType(char* value) { int i = 0; char ch; double ret = 0; while((ch = value[i] )!= '\0') { ret = ret*10 +(ch - '0'); ++i; } printf("%d",ret);//or %f..what is the control string for double? } //input string :88 </code>
Ale zawsze drukuje 0 ... Ale kiedy zmieniam typ ret na int ... to działa dobrze ... gdy typ jest float lub double, drukuje zero ... więc dlaczego otrzymuję te niejednoznaczne wyniki?