Serial monitor problem

Read this: Serial.readBytes() - Arduino Reference

I think you want Serial.parseFloat();

Your sketch won't compile for me:

sketch_oct18b:8: error: expected initializer before 'char'
 char buffer[100]; {
 ^
sketch_oct18b:8: error: expected unqualified-id before '{' token
 char buffer[100]; {
                   ^
exit status 1
expected initializer before 'char'

That bracket is in the wrong place. Fixing that mistake gets me this warning:

/Users/john/Documents/Arduino/sketch_oct18b/sketch_oct18b.ino: In function 'void loop()':
/Users/john/Documents/Arduino/sketch_oct18b/sketch_oct18b.ino:14:22: warning: invalid conversion from 'int' to 'const char*' [-fpermissive]
     atof(incomingByte);
                      ^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/avr/1.6.19/cores/arduino/Arduino.h:23:0,
                 from sketch/sketch_oct18b.ino.cpp:1:
/Users/john/Library/Arduino15/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/include/stdlib.h:361:15: note: initializing argument 1 of 'double atof(const char*)'
 extern double atof(const char *__nptr);
               ^
Sketch uses 4202 bytes (13%) of program storage space. Maximum is 32256 bytes.
Global variables use 202 bytes (9%) of dynamic memory, leaving 1846 bytes for local variables. Maximum is 2048 bytes.

I'm kind of surprised that " int circle(int incomingByte);" parses at all. It looks like a function prototype inside loop()!

I think what you meant to do is:

const float Pi = 3.141592;

void setup() {
  Serial.begin(9600);
}

void loop() {
  float inputValue = Serial.parseFloat();
  Serial.println();
  Serial.println(Pi * 2 * inputValue);
}