-----BEGIN PGP SIGNED MESSAGE----- Moin,
sorry for respondint so late, I don't read that list. >Gibbs Tanton writes: >> You might want to try Math::BigFloat instead. > >I originally wrote: >> I'm trying to perform the following calculation: >> $value = ($float + $integer) * 100000; >> $string = "$value:test"; > >I now have code like the following: >use Math::BigFloat; > ># Initial values >my $float = 1000123123.12345; >my $integer = 123456789; This will go wrong, you need to protect the values with "", otherwise Perl will sneak in, interpret them as numbers and store them in a limited scalar, thus throwing away some resolution. >my $factor = 1000000; >my $string = ":test"; >my $value; > >$value = Math::BigFloat->new($float); >print "Value 1: $value.\n"; Fine so far ;) >$value = Math::BigFloat->new($value->fadd($integer)); >print "Value 2: $value.\n"; You can write shorter: $value += $integer; >$value = Math::BigFloat->new($value->fmul($factor)); >print "Value 3: $value.\n"; Ditto here: $value *= $factor; >$value =~ s/.$//; # Remove decimal point >print "Value 4: $value.\n"; Fine, but remember that the result is a bare string, not an object. >$value .= $string; # Append string >print "Value 5: $value.\n"; >This outputs: >Value 1: 1000123123.12345. >Value 2: 1123579912.12345. >Value 3: 1123579912123450.. >Value 4: 1123579912123450. >Value 5: 1123579912123450:test. Look quite good to me ;) And in case you have an old version of Math::BigInt/BigFloat, go to search.cpan.org and enter "Math::BigInt" into the box, you will be able to get an updated version there. To check the version do this: perl -MMath::BigInt -e 'print $Math::BigInt::VERSION,"\n"' Current is v1.45. Thanx for your interest. Tels - -- perl -MMath::String -e 'print \ Math::String->from_number("215960156869840440586892398248"),"\n"' http://bloodgate.com/perl My current Perl projects PGP key available on http://bloodgate.com/tels.asc or via email. -----BEGIN PGP SIGNATURE----- Version: 2.6.3i Charset: latin1 iQEVAwUBO/Kt7XcLPEOTuEwVAQHi+wf9HuGi/hfdTYzOy+RfeowHiLXLKorjfNeb uld8NE2+N8tYtDChFRjRwSlSAx13T3l3Ow2Y2IN9TKX9BViLNvd/l2crKtVAiZdK HINj7YdfJl29NoHVtSDjF73e0GE7R6PRow707az0Xuv50vmQINA8i7QpAag/1/AT FSe3y8R7ZLNW0Qv5l1v7cLVNpGMq0s7NBRncZ3OR2NjrQdYfQXTnyHPbHT8DKz1r 7ri3iV3hKxlSYK7+QJqIALNUikdpkn7s4b0ajYMyOYcwtnZYT+EyHlQQfkhA/QjD EiJ78G2/R5lVUDqMPHWG5EnaHWXC+NZio0mIflu5UmIn4UegCIZX7w== =9bua -----END PGP SIGNATURE----- -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]