Предполагая, что вы используете .Net, вы можете отформатировать вывод с помощью;
<%
String format = "<p>{0:#,0 rub .00 kop}</p>";
Response.Write(String.Format(format, 98765.4321));
Response.Write(String.Format(format, 98765.4));
Response.Write(String.Format(format, 987654321));
Response.Write(String.Format(format, 0.12345));
Response.Write(String.Format(format, 0.1));
Response.Write(String.Format(format, 0));
%>
Какие выходы;
98,765 rub .43 kop
98,765 rub .40 kop
987,654,321 rub .00 kop
0 rub .12 kop
0 rub .10 kop
0 rub .00 kop
Не знаете, как избавиться от десятичного разряда, хотя и пропуститеесли коп == ноль.
Вы также можете отформатировать строки + / ve - / ve иначе;http://blog.stevex.net/string-formatting-in-csharp/