PDA

Tam Sürümünü Görmek İçin : String degerden double degere donusturmek


Libertador
05/01/2003, 01:06
Esasinda odev sorusu bu sormak istemezdim ama elimde kaynak yok bir turlu de cozemedim.
String olarak girilen bir double sayiyi double haline getirip uzerinde islem yapacagim. Ama nasil? Sayiyi tek tek rakam halinde degerlendirip bu rakamin karakter degerinden double formuna donusturmek gerekiyor saniyorum. Iste burasi nasil oluyor anlayamadim.


csharpnedir.com
05/01/2003, 05:31
Hangi dilde yapacağını pek anlamadım.. Aslında C++ ve C# dillerinde string sınıfına ait bir değişkeni double veri türüne çeviren (haslaaten C#'ta) birçok method hailazırda var...

Ama senin böyle bir metod'u yazman gerekebilir(hoca bunu istiyordur..) Eğer böyleyse sana bu konuda algoritmasını anlatabilirim.

Yok eğer hazır fonksyion kullanacaksan Visual C++ 6.0 için şu dökumantasyonda strtod() fonksiyonu anlatıyor.. Istersen buraya bir gözat.. : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_strtod.2c_.wcstod.asp

Libertador
05/01/2003, 12:45
Hazir fonksiyonlari ben de bulmustum.Mesaji attiktan yarim saat sonra problemi cozdum. Sanirim mesaji atmak icin biraz acele ettim. sayilarin char degeri 48den basliyormus. Dolayisiyla 0'in degeri 48. Soyle bir cozum buldum:
#include <stdio.h>
#include <math.h>
#include <conio.h>
int count(char []);
double swap(char [],int);
main()
{
char a[]="636566", b[]="89252369",c[]="3466097",d[]="535";
double x,y,z,t;
int l;
l=count(a);
x=swap(a,l);
l=count(b);
y=swap(b,l);
l=count(c);
z=swap(c,l);
l=count(d);
t=swap(d,l);
x=x+y+z+t;
printf("%f",x);
getch();
return 0;
}
int count(char array[])
{
int i,counter=0;
for(i=0;array[i];i++)
counter++;
return counter;
}
double swap(char array[],int x)
{
int i;
double number=0;
for(i=x-1;i>-1;i--)
number+=pow(10,i)*(array[(x-1)-i]-48);
return number;
}