HI If I use printf to round a numeric value before inserting into postgres table it is altered to 1 rather than the value when it is put into a table
example CREATE TABLE public.chksize ( size numeric(10,2), #does not matter what field type path1 character varying COLLATE pg_catalog."default" ) this creates a value of 1 for every value my $ins=$dbh->prepare("INSERT into chksize (size,path1) VALUES (?,?) "); open my $list ,'chksizer.txt'; no strict 'refs'; my @list=(<$list>); foreach my $k (@list){ chomp $k; my ($size,$path)=split /,/,$k; my $size1=printf('%.1f',$size/(1024*1024)); $ins->bind_param(1,$size1); $ins->bind_param(2,$path); $ins->execute; } without printf this inserts proper value my $ins=$dbh->prepare("INSERT into chksize (size,path1) VALUES (?,?) "); open my $list ,'chksizer.txt'; no strict 'refs'; my @list=(<$list>); foreach my $k (@list){ chomp $k; my ($size,$path)=split /,/,$k; my $size1=$size/(1024*1024); $ins->bind_param(1,$size1); $ins->bind_param(2,$path); $ins->execute; } Any ideas what is happening here? thanks Mike