Thread View: alt.pl.comp.lang.csharp
7 messages
7 total messages
Started by Zeus
Sun, 30 May 2010 20:30
Co zamiast?
Author: Zeus
Date: Sun, 30 May 2010 20:30
Date: Sun, 30 May 2010 20:30
5 lines
854 bytes
854 bytes
(C++ modf()) szukałem, Google nic nie znalazły. Nie ma w C# - trzeba napisać samemu czy tu to się inaczej nazywa ewentualnie czym to obejść. Pozdrawiam S.Z.
Re: Co zamiast?
Author: Zeus
Date: Mon, 31 May 2010 05:14
Date: Mon, 31 May 2010 05:14
12 lines
1088 bytes
1088 bytes
Napisać samemu to nie problem
double modf(double base, double &intbase)
{
intbase = (double)((int) base);
return abs(base - intbase);
}
Jednak to jest wolniejsze od oryginału w C++ a jak to tu wygląda.
A może trzeba na to tutaj spojrzeć jeszcze inaczej? Proszę o radę.
Pozdrawiam
S.Z.
Re: Co zamiast?
Author: JK
Date: Mon, 31 May 2010 14:32
Date: Mon, 31 May 2010 14:32
10 lines
1173 bytes
1173 bytes
W dniu 2010-05-30 22:30, Zeus pisze: > (C++ modf()) szukałem, Google nic nie znalazły. Nie ma w C# - trzeba > napisać samemu czy tu to się inaczej nazywa ewentualnie czym to obejść. > > Pozdrawiam > S.Z. Ja znalałem cos takiego http://bytes.com/topic/c-sharp/answers/269044-c-modf-function Pozdraiam JK
Re: Co zamiast?
Author: Zeus
Date: Mon, 31 May 2010 19:42
Date: Mon, 31 May 2010 19:42
31 lines
1730 bytes
1730 bytes
> Ja znalałem cos takiego
> http://bytes.com/topic/c-sharp/answers/269044-c-modf-function
> Pozdraiam
> JK
"/
double orig, ipart, fractional = 0;
orig = 1.234;
fractional = orig - (ipart = Math.Floor(orig));
/"
Tylko trzeba sprawdzać czy + lub - bo:
Value Ceiling Floor
' 7.03 8 7
' 7.64 8 7
' 0.12 1 0
' -0.12 0 -1
' -7.1 -7 -8
' -7.6 -7 -8
Więc wygląda na to, że moja funkcja jednak będzie szybsza tylko trzeba
ją zaadoptować do C#.
Jeszcze jedno pytanie jak C# realizowane jest:
(C++)fun( & tocochcęotrzymać ) ?
Przepraszam za mędzenie ale jeszcze zbyt wielu rzeczy nie rozumiem.
Im dalej w las tym więcej drzew...
Pozdrawiam
S.Z.
Re: Co zamiast?
Author: Janusz Kielesiński
Date: Mon, 31 May 2010 20:13
Date: Mon, 31 May 2010 20:13
44 lines
2169 bytes
2169 bytes
W dniu 2010-05-31 21:42, Zeus pisze:
>> Ja znalałem cos takiego
>> http://bytes.com/topic/c-sharp/answers/269044-c-modf-function
>> Pozdraiam
>> JK
> "/
> double orig, ipart, fractional = 0;
> orig = 1.234;
>
> fractional = orig - (ipart = Math.Floor(orig));
> /"
> Tylko trzeba sprawdzać czy + lub - bo:
>
> Value Ceiling Floor
> ' 7.03 8 7
> ' 7.64 8 7
> ' 0.12 1 0
> ' -0.12 0 -1
> ' -7.1 -7 -8
> ' -7.6 -7 -8
>
> Więc wygląda na to, że moja funkcja jednak będzie szybsza tylko trzeba
> ją zaadoptować do C#.
>
> Jeszcze jedno pytanie jak C# realizowane jest:
> (C++)fun( & tocochcęotrzymać ) ?
>
> Przepraszam za mędzenie ale jeszcze zbyt wielu rzeczy nie rozumiem.
> Im dalej w las tym więcej drzew...
>
> Pozdrawiam
> S.Z.
Ta funkcja powinna wyglądać tak:
private double modf(double pb, ref double intbase)
{
intbase = (double)((int)pb);
return (pb - intbase);
}
wywołanie " modf(val, ref a2)" najważniejsze jest słowo "ref";
Modyfikator może być private lub public zależy czy chcesz wykorzystywać
tą funkcję w innych modułach.
pozdrawiam
JK
Re: Co zamiast?
Author: Zeus
Date: Tue, 01 Jun 2010 07:48
Date: Tue, 01 Jun 2010 07:48
7 lines
1113 bytes
1113 bytes
Wielkie dzięki. Tego szukałem - to mniej więcej tak jak w początkach "C" zrozumienie co znaczy, że funkcja coś zwraca lub nie. No ale czasami człowiek idzie do "Pacanowa" i daleko szuka tego co jest bardzo blisko :-) Pozdrawiam S.Z.
modf() C# i clr
Author: Zeus
Date: Tue, 01 Jun 2010 13:17
Date: Tue, 01 Jun 2010 13:17
18 lines
1347 bytes
1347 bytes
No to dla innych potrzebujących:
/////////////////////////////////////////////////////////////
(C++Clr)
public: Decimal Modf(Decimal pb, Decimal %intbase)
{
intbase = Math::Truncate(pb);
return pb - intbase;
}
/////////////////////////////////////////////////////////////
C#
public Decimal Modf(Decimal pb, ref Decimal intbase)
{
intbase = Math.Truncate(pb);
return pb - intbase;
}
/////////////////////////////////////////////////////////////
Pozdrawiam
S.Z.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads