直接循环 搞那么复杂干嘛 保留三位小数不就行吗

package main

import (
	"fmt"
	"math"
)

func main() {
	var val float64
	for {
		_, err := fmt.Scan(&val)
		if err != nil {
			return
		}
		var i float64

		for i = 0.0; i*i*i <= math.Abs(val); i += 1 {
		}
		for i = i - 1; i*i*i <= math.Abs(val); i += 0.1 {
		}
		for i = i - 0.1; i*i*i <= math.Abs(val); i += 0.01 {
		}
		for i = i - 0.01; i*i*i <= math.Abs(val); i += 0.001 {
		}
		i = i - 0.001

		fmt.Printf("%.1f\n", i*val/math.Abs(val))
	}

}