Takuさんありがとうございます。 >sprintfなりnumber_formatなりで文字列化した後、文字列の終端側から >↓こんな感じで、余分なのを捨てちゃって下さい。 > > echo ereg_replace("[\.]*0+$", "", sprintf("%f", $cal)); これだとこれはないだろうって思われる小数点以下を指定しないとだめですよね? それに以下のパターンだと <? $cal= 1.0000000001; echo sprintf("%.20f",$cal); ?> 1.00000000010000000827 ・・・。 sprintfの使い方間違ってるのかな? もうちょっと考えてみます。 いろいろありがとうございました。