You could just make alternate versions of the Int code, like this:
function GetPrivateProfileFloat(Section as string, KeyName as string, Default as integer, FileName as string)
r as float
r=val(GetPrivateProfileString(Section, KeyName, str$(Default), FileName))
endfunction r
function WritePrivateProfileFloat(Section as string, KeyName as string, Value as float, FileName as string)
WritePrivateProfileString(Section, KeyName, str$(Value), FileName)
endfunction
I don't know how much precision that STR$() keeps when it makes the string though...